사용자 도구

사이트 도구


docker

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
docker [2017/05/16 16:33]
kwon37xi
docker [2018/11/30 15:24]
kwon37xi [Container 관리]
줄 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에 마운트하기
줄 57: 줄 65:
 </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: 줄 88:
  
 ===== 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: 줄 96:
 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: 줄 124:
   * [[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.txt · 마지막으로 수정됨: 2024/02/15 09:58 저자 kwon37xi