전체 글 (49) 썸네일형 리스트형 [docker] docker commit image docker에서 application을 각각 띄우게 되면 기본 바탕으로 아주 최소한의 ubuntu위에 생기게 되고 이때는 최소한으로 생기게 하기 위해 웬만한 명령어가 실행되지 않는다 이때 vim도 없고 ps도 없고 없는게 엄청 많다 컨테이너를 생성할때마다 명령어들을 다운받는게 굉장히 귀찮다 이에 하나의 해결방법으로 commit을 해서 현재에 있는 container상태를 이미지화 해놓는것이다. 예를 들어 지금 테스트 용으로 centos:centos7을 사용하고 있는데 항상 설치하자마자 여기에 yum 으로 여러가지를 다운 받는다 하지만 아래와 같이 현재 컨테이너 상태를 이미지화 해놓으면 이미지화 된 컨테이너를 다음에 또 띄움으로 yum을 더이상 하지 않아도 되는것이다. docker commit [contai.. [docker][linux] docker bash -l 옵션 docker를 사용하다 보니 컨테이너 안의 bash를 실행할 때 -l 옵션이 어떤 역할을 하는지 중요하게 되었다 --help를 했는데 나타나지 않기에 검색해서 찾아봤다 . -l은 로그인 쉘을 실행하겠다는건데 -l 을 하지 않으면 root계정의 모든 권한을 사용할 수 없다. 분명 root계정을 가지고 있지만 권한이 없다고 나타나니 이때는 -l옵션을 줘서 쉘에 접근하면 된다. 로그인 쉘 절차 1. /etc/profile .(source 명령으로 /etc/bash.bashrc 를 읽어들인다. 2. ~/.bash_profile 3. ~/.bash_login 4. ~/.profile ~/.bashrc 파일을 읽는다. 순서로 파일을 읽는다. 이에 login shell이 아닌 경우에는 source 명령어를 바로 실행.. [docker] docker 이미지 지우기 도커 이미지 리스트 보기 $ docker images docker 이미지들을 계속 pull 받게 되면 이미지가 계속 생기게 되어 이미지 리스트들이 늘어나고 그 이미지들의 리스트 때문에 용량을 많이 차지하게 된다. $ docker rmi [docker image id] 를 쓰게 되면 docker image를 지울수 있다. 이때 도커 이미지가 이미 사용중이라서 지울수 없다는 멘트가 나오면 $ docker ps -a 을 이용해서 현재 컨테이너 리스트들을 확인한다. 컨테이너에 사용되고 있는 이미지라서 삭제할 수 없다고 하는 이야기니까 컨테이너를 지운뒤 이미지를 지우면 지울 수 있다. [docker] docker hub의 push가 안되는 현상 빌드도 잘 되고, 분명 성공했으나 바뀐게 없다고 같은 hash값을 return 하는 현상을 겪음 docker build를 하고 push를 했는데 자꾸 최신 버전이라고 하고 제대로 push가 안되는 듯한 느낌을 받았다. 모든것이 성공적이어 보이는듯 했지만 docker에도 같은 파일이면 build할때 캐시를 머뭄고 있다고 한다. 계속 생겼던 그 문제가 캐시 때문이었다고 단정할 수는 없지만 유추해보기엔 캐시를 머뭄고 있는데 계속 내가 태그 안주고 latest로 올려서 그런거 같다는 생각을 하고 있다. 이에 이것을 태그도 주고 캐시를 지우면서 build를 시키니 정말 push 할것을 찾았다. 명령어는 다음과 같다. docker build --no-cache=false -t id/repository:tag . d.. [postman] 포스트맨으로 request 보내기 (파일,데이터) 개발을 진행하다보니 postman으로 테스트를 하는 경우가 많이 생겼는데 파일을 여러개 보내고 싶다거나 json데이터를 보내는것을 테스트 해보고 싶은데 때마다 잊어서 써놓으려고 한다. 우선 내가 하려고 했던것은 json데이터와 파일을 여러개 보내야 하는 상황이었다. 이때 json데이터만 보내는 것은 json으로 보내지는데 내가 보낼때는 같이 보내야 해서 json을 string으로 받아서 보냈다. json은 string com , file은 arrayList files 로 requestParam으로 보냈다. reqeustPart로 사람들은 이용하던데 아무리 해도 설정을 잘 못했는지 조금 더 찾아보고 할 예정이다. requestParam으로 보낼때 postman에서는 param으로 설정한 이름으로 보내줘야 .. [spring boot] file 업로드시 톰캣 경로가 모두 나오는 경우 spring boot를 이용해서 개발을 하는 도중 톰캣의 경로가 모두 한꺼번에 나오면서 파일의 위치를 찾지 못하는 문제가 생겼다. 에러는 다음과 같다 C:\Users\yy\AppData\Local\Temp\tomcat.4490009822129612418.80\work\Tomcat\localhost\ROOT\e\study\imageTest\springboot.png (지정된 경로를 찾을 수 없습니다) 기존에 경로를 이용해서 잘 업로드 하다가 linux서버에 올리기위해 경로 바꾸고 윈도우에서 다시 바꾸니 갑자기 업로드에 실패하여 당황했다. 이런경우가 생긴 이유는 다음과 같다. spring boot는 기본적으로 톰캣이 내장되어있어 서버를 따로 띄우지 않는데 파일 업로드경로도 temp폴더를 설정을 해주는 모양이.. [linux] ip 차단설정 포트가 모두 열려있는 ip로 알수 없는 다른 나라에서 연결을 해오고 있다는걸 알게 되었다. 이에 특정 ip로 들어오는 연결을 끊어내고자 iptable설정을 하였다. 명령어는 $ iptables -A INPUT -s 52.125.0.0/16 -p tcp --dport 22 -j DROP iptable을 설정하는데 A: ADD한다. INPUT : input 커넥션을 컨트롤 한다. -s : source 들어오려는 ip를 설정한다. -p : tcp --dport : 22번 포트 -j : action을 의미 DROP : response를 주지 않고 서버에서 끊어버리겠다. REJECT : response를 주고 끊어버리겠다. INPUT : 들어오는 패킷 FORWARD : 거쳐가는 패킷 OUTPUT : 나가는 패킷 [spring-boot] 스프링부트 띄울때 몽고디비 에러 mongo db templet을 이용해서 특정 컬렉션을 가져오는 것을 하고 있는데 다음과 같이 'No property AName found for type User! Did you mean name?" 이라는 에러가 떴다. 지금 생각해보면 오 신박하다 싶은데 처음에는 도대체 뭔 소리를 하나 싶다. 결론적으로 뒤돌아보면 템플릿을 이용해서 찾아주는 부트 입장에서는 뭘찾으라는 건지 난감한거다. 얘가 알아들을 수 있게 메서드를 지정해줘야한다. UserRepository.java 에서 다음과 같이 정의 내렸었다. user 라는 컬렉션에는 name, sex만 존재하는 상황이었고 name을 가진 모든 user의 정보를 가지고 오려는 상황!! 이때는 알아들을 수 있게 findAllByName이라고 써줘야 에러가 나지 .. 이전 1 2 3 4 5 6 7 다음