docker run hello-world
docker search [검색어]
docker pull [image-name]:[tag] : 이미지의 tag 버전을 다운로드함. latest는 최신버전.docker images : 이미지 목록보기docker rmi [image-name]:[tag] : 이미지 삭제. tag 생략시 버전 상관없이 모두 삭제.run 명령으로 컨테이너 생성docker run [option] [image-name] {[실행명령]}
-i -t or -it : interactive, pseudo-tty : 실행된 명령에서 인터랙티브하게 입력/출력 가능--name [container-name] 컨테이너 이름지정-d : detached 상태로(background로) 실행--rm : 기존에 이미 도커 컨텐이너가 존재하면 삭제하고 다시 실행-v $HOSTDIR:$DOCKERDIR : HOST의 디렉토리를 컨테이너의 디렉토리에 마운트-p 127.0.0.1:$HOSTPORT:$CONTAINERPORT : HOST의 특정포트로 들어오는 요청을 Container의 특정포트로 보내기.# 11211 port로 실행되는 memcached docker 이미지가 있다고 할 때 아래 명령으로 컨테이너 생성하면 docker run -d -p 127.0.0.1:11211:11211 --name memcachedtest memcached # 앞의 "127.0.0.1:" 생략 가능.
--restart=[option] : no,on-failure[:max-retries],always,unless-stopped 등을 지정하면 해당 컨테이너 자동 리스타트를 옵션으로 지정할 수 있다. 개발환경에서는 unless-stopped(명시적 중지가 아니면 자동 재시작) 정도이면 될 듯.docker ps -a : 모든 컨테이너 목록 출력. -a는 전체 목록, -a없으면 현재 실행중인 것들만.--no-trunc 명령줄 줄이지 않고 보여주기docker start [container-name|id] : 컨테이너 시작docker restart [container-name] : 재시작docker attach [container-name] : 컨테이너에 접속exit 혹은 Ctrl-D 사용시 컨테이너 정지Ctrl-P, Ctrl-Q를 차례로 누르면 실행상태로 그냥 빠져나옴.docker exec [container-name] [명령] … : 외부에서 컨테이너 안의 명령 실행하기docker exec -it [container-name] /bin/bash : 외부에서 컨네이너 안의 bash interactive 하게 실행docker exec -it -u [user]:[group] [container-name] /bin/bash : docker 컨테이너 안에 있는 특정 user:group 으로 접속docker stop [container-name] : 컨테이너 정지docker rm [container-name]# 이름없는 모든 이미지 삭제 docker image prune # 중지된 모든 컨테이너 삭제 docker container prune # 사용하지 않는 모든 도커 볼륨 삭제 docker volume prune -f # 사용하지 않는 모든 도커 네트워크 삭제 docker network prune # 위 모든 명령을 합친 것. 이것에 의해 삭제되지 않는 다는 것은 사용중인 컨테이너, 이미지, 기타 등등이라는 의미 docker system prune -a
/bin/sh 말고 알고 있다면 해당 shell 을 지정.docker run --rm -it --entrypoint /bin/sh <image-name-or-id>
<image-name-or-id> 뒤의 내용을 인자로 전달함.docker run --rm --entrypoint /bin/cat <image-name-or-id> "/etc/redhat-release"
run -v /volume/dir : /volume/dir 을 컨테이너에 생성, 실제 저장될 위치는 inspect로 확인docker run -d -P --name web -v /webapp training/webapp python app.py
docker inspect [container-name] 으로 마운팅 상황 확인 가능-v /host/dir:/container/dir로 host 디렉토리를 container의 특정 디렉토리에 마운팅#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
docker daemon --userland-proxy=false
/etc/default/docker 파일에 DOCKER_OPTS 을 추가한 후 docker daemon 을 재시작하면 된다. $ cat /etc/default/docker DOCKER_OPTS="--userland-proxy=false"
docker run --add-host="some.example.com:127.17.0.1"
unable to remount sys readonly: unable to mount sys as readonly max retries reached 오류를 만나면
/etc/sysconfig/docker 파일에 --exec-driver=lxc 추가 후 docker 재시작.
other_args="--selinux-enabled --exec-driver=lxc"
jmap 으로 Heap Dump를 뜰 수 없다.--cap-add=SYS_PTRACE 옵션을 준다.# 설정 안했을 경우 관련 오류 Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 142: Operation not permitted
vmswitch.sys DRIVER_IRQL_NOT_LESS_OR_EQUAL 어쩌구 오류
/var/lib/docker/containers/*/*.log 에 STDOUT 이 모두 계속 출력되므로 log rotate가 필요하다.192.168.x.x로 접속하면 될 듯./var/lib/docker/volumes/ 에 볼륨 데이터 저장됨.