사용자 도구

사이트 도구


docker

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
docker [2017/05/16 17:03]
kwon37xi
docker [2018/12/03 14:15] (현재)
kwon37xi [Volume Mount]
줄 21: 줄 21:
 docker run [option] [image-name] {[실행명령]} docker run [option] [image-name] {[실행명령]}
 </​code>​ </​code>​
-    * ''​-i -t''​ : interactive,​ pseudo-tty : 실행된 명령에서 인터랙티브하게 입력/​출력 가능+    * ''​-i -t''​ or ''​-it''​ : interactive,​ pseudo-tty : 실행된 명령에서 인터랙티브하게 입력/​출력 가능
     * ''​%%--%%name [container-name]''​ 컨테이너 이름지정     * ''​%%--%%name [container-name]''​ 컨테이너 이름지정
     * ''​-d''​ : detached 상태로(background로) 실행     * ''​-d''​ : detached 상태로(background로) 실행
 +    * ''​%%--%%rm''​ : 기존에 이미 도커 컨텐이너가 존재하면 삭제하고 다시 실행
     * ''​-v $HOSTDIR:​$DOCKERDIR''​ : HOST의 디렉토리를 컨테이너의 디렉토리에 마운트     * ''​-v $HOSTDIR:​$DOCKERDIR''​ : HOST의 디렉토리를 컨테이너의 디렉토리에 마운트
     * ''​-p 127.0.0.1:​$HOSTPORT:​$CONTAINERPORT''​ : HOST의 특정포트로 들어오는 요청을 Container의 특정포트로 보내기.<​code sh>     * ''​-p 127.0.0.1:​$HOSTPORT:​$CONTAINERPORT''​ : HOST의 특정포트로 들어오는 요청을 Container의 특정포트로 보내기.<​code sh>
줄 30: 줄 31:
 # 앞의 "​127.0.0.1:"​ 생략 가능. # 앞의 "​127.0.0.1:"​ 생략 가능.
 </​code>​ </​code>​
 +    * ''​%%--%%restart=[option]''​ : ''​no'',''​on-failure[:​max-retries]'',''​always'',''​unless-stopped''​ 등을 지정하면 해당 컨테이너 자동 리스타트를 옵션으로 지정할 수 있다. 개발환경에서는 ''​unless-stopped''​(명시적 중지가 아니면 자동 재시작) 정도이면 될 듯.
   * ''​docker ps -a''​ : 모든 컨테이너 목록 출력. ''​-a''​는 전체 목록, ''​-a''​없으면 현재 실행중인 것들만.   * ''​docker ps -a''​ : 모든 컨테이너 목록 출력. ''​-a''​는 전체 목록, ''​-a''​없으면 현재 실행중인 것들만.
   * ''​docker start [container-name|id]''​ : 컨테이너 시작   * ''​docker start [container-name|id]''​ : 컨테이너 시작
줄 40: 줄 42:
   * ''​docker stop [container-name]''​ : 컨테이너 정지   * ''​docker stop [container-name]''​ : 컨테이너 정지
   * ''​docker rm [container-name]''​   * ''​docker rm [container-name]''​
 +  * [[https://​stackoverflow.com/​questions/​17236796/​how-to-remove-old-docker-containers|불필요한 Container, Image 삭제]]<​code sh> 
 +docker image prune 
 +docker container prune 
 +# 위 둘을 합친게 volume인가?​ 
 +docker volume prune -f 
 +</​code>​ 
 +  * [[https://​docs.docker.com/​engine/​reference/​commandline/​volume_prune/​|docker volume prune | Docker Documentation]]
 ==== Volume Mount ==== ==== Volume Mount ====
   * host 의 diretory를 docker container에 마운트하기   * host 의 diretory를 docker container에 마운트하기
줄 50: 줄 58:
   * ''​docker inspect [container-name]''​ 으로 마운팅 상황 확인 가능   * ''​docker inspect [container-name]''​ 으로 마운팅 상황 확인 가능
   * Host 디렉토리를 마운트하려면 ''​-v /​host/​dir:/​container/​dir''​로 host 디렉토리를 container의 특정 디렉토리에 마운팅   * Host 디렉토리를 마운트하려면 ''​-v /​host/​dir:/​container/​dir''​로 host 디렉토리를 container의 특정 디렉토리에 마운팅
-  * +  * [[[[https://​stackoverflow.com/​questions/​41485217/​mount-current-directory-as-a-volume-in-docker-on-windows-10|현재 디렉토리 마운팅 script]]<​code sh> 
 +#The following two options will work on both PowerShell and Linux: 
 + 
 +docker run --rm -it -v ${PWD}:/​usr/​src/​project gcc:4.9 
 + 
 +docker run --rm -it -v $(pwd):/​usr/​src/​project gcc:4.9 
 +</​code>​
 ==== Docker Proxy ==== ==== Docker Proxy ====
   * Linux에서 Docker Proxy 프로세스가 뜨는 것을 막으려면,​ 커널 2.6을 제외하고,​   * Linux에서 Docker Proxy 프로세스가 뜨는 것을 막으려면,​ 커널 2.6을 제외하고,​
줄 57: 줄 71:
 </​code>​ </​code>​
  
 +<code sh>
 +/​etc/​default/​docker 파일에 DOCKER_OPTS 을 추가한 후 docker daemon 을 재시작하면 된다. ​
 +
 +$ cat /​etc/​default/​docker
 +DOCKER_OPTS="​--userland-proxy=false"​
 +</​code>​
 +  * [[http://​bluese05.tistory.com/​53|Docker Network 구조(3) - container 외부 통신 구조]]
 +
 +==== /etc/hosts ====
 +  * [[https://​docs.docker.com/​engine/​reference/​run/#​managing-etchosts|Docker run reference | Docker Documentation - managing-etc/​hosts]]
 +<code sh>
 +docker run --add-host="​some.example.com:​127.17.0.1"​
 +</​code>​
 ===== 오류 대응 ===== ===== 오류 대응 =====
 ==== centos ==== ==== centos ====
 ''​unable to remount sys readonly: unable to mount sys as readonly max retries reached''​ 오류를 만나면 ''​unable to remount sys readonly: unable to mount sys as readonly max retries reached''​ 오류를 만나면
-''/​etc/​sysconfig/​docker''​ 파일에 ''​--exec-driver=lxc''​ 추가 후 docker 재시작.+''/​etc/​sysconfig/​docker''​ 파일에 ''​%%--%%exec-driver=lxc''​ 추가 후 docker 재시작.
 <code sh> <code sh>
 other_args="​--selinux-enabled --exec-driver=lxc"​ other_args="​--selinux-enabled --exec-driver=lxc"​
줄 67: 줄 94:
  
 ===== Docker & Java / JVM / JDK ===== ===== Docker & Java / JVM / JDK =====
 +  * [[java:​openjdk:​docker|OpenJdk Docker]]
 +  * [[https://​www.javacodegeeks.com/​2017/​12/​docker-java-developers-develop-docker.html|Docker for Java Developers: Develop on Docker]]
   * Docker의 JVM에서 ''​jmap''​ 으로 Heap Dump를 뜰 수 없다.   * Docker의 JVM에서 ''​jmap''​ 으로 Heap Dump를 뜰 수 없다.
   * [[https://​jarekprzygodzki.wordpress.com/​2016/​12/​19/​jvm-in-docker-and-ptrace_attach/​|JVM in Docker and PTRACE_ATTACH]]를 참조하여 Docker 실행시에 ''​%%--%%cap-add=SYS_PTRACE''​ 옵션을 준다.   * [[https://​jarekprzygodzki.wordpress.com/​2016/​12/​19/​jvm-in-docker-and-ptrace_attach/​|JVM in Docker and PTRACE_ATTACH]]를 참조하여 Docker 실행시에 ''​%%--%%cap-add=SYS_PTRACE''​ 옵션을 준다.
줄 73: 줄 102:
 Caused by: sun.jvm.hotspot.debugger.DebuggerException:​ Can't attach to the process: ptrace(PTRACE_ATTACH,​ ..) failed for 142: Operation not permitted Caused by: sun.jvm.hotspot.debugger.DebuggerException:​ Can't attach to the process: ptrace(PTRACE_ATTACH,​ ..) failed for 142: Operation not permitted
 </​code>​ </​code>​
 +  * [[https://​dzone.com/​articles/​running-a-jvm-in-a-container-without-getting-kille|Running a JVM in a Container Without Getting Killed]] Java 8u131 에서 Docker의 메모리할당량과 관련된 옵션 사용가능
 +    * [[java:​options|Oracle(SUN) JVM Options]] 참조
 +  * [[https://​dzone.com/​articles/​improved-docker-container-integration-with-java-10|Improved Docker Container Integration With Java 10 - DZone Java]]
 +
 +===== Windows 10 & Docker CE=====
 +  * Windows 10과 Docker 사용시 Hyper-V 에 오류를 발생시키는 것으로 보임 - 정확하지는 않음<​code>​
 +vmswitch.sys DRIVER_IRQL_NOT_LESS_OR_EQUAL ​ 어쩌구 오류
 +</​code>​
 +  * sqlserver 2017 을 docker로 실행했을 때 오류가 발생하는 것으로 예상됨.
 +  * https://​github.com/​Microsoft/​mssql-docker/​issues/​88#​issucomomment-314618471
  
 ===== Mac OS X 성능 문제 ===== ===== Mac OS X 성능 문제 =====
줄 91: 줄 130:
   * [[http://​www.dasblinkenlichten.com/​docker-networking-101-host-mode/​|Docker Networking 101 – Host mode - Das Blinken Lichten]]   * [[http://​www.dasblinkenlichten.com/​docker-networking-101-host-mode/​|Docker Networking 101 – Host mode - Das Blinken Lichten]]
   * [[https://​blog.2dal.com/​2017/​03/​27/​docker-and-oom-killer/​|Docker and OOM(Out Of Memory) Killer – asbubam'​s blog]]   * [[https://​blog.2dal.com/​2017/​03/​27/​docker-and-oom-killer/​|Docker and OOM(Out Of Memory) Killer – asbubam'​s blog]]
 +  * [[https://​spoqa.github.io/​2017/​06/​22/​docker-tip.html|개발 환경에서 유용한 Docker 명령어 소개]]
docker.1494921824.txt.gz · 마지막으로 수정됨: 2017/05/16 17:03 저자 kwon37xi