All Articles

자주 쓰는 docker commands

실행중인 docker container에 shell 접속하기

  • -i: doccker 컨테이너의 STDIN을 open한다.
  • -t: doccker 컨테이너에 psuedo tty를 지정해준다.
  • 위의 두 옵션을 사용하여 실행중인 doccker 컨테이너에 shell 접속을 할 수 있다.
  docker run -i -t ubuntu /bin/bash

Docker ps

  • 현재 실행중인 docker container들을 볼 수 있다. (마치 ps 커맨드 처럼)
  • -a 옵션을 설정하면 실행되었다 멈춘 컨테이너 들도 나열된다.
  • -l 옵션을 설정하면 가장 최근의 컨테이너 정보가 나열된다 (가장 최근에 시작되었거나 멈추어진 컨테이너).
  • -q: returns container IDs only

Daemonized docker containers:

  • -d 옵션
docker run --name daemonized_container -d <docker_image>
  • Production 환경에서 실행될 docker container는 대부분 daemonized 된 상태로 실행될것이다.

Logging

  • logs 커맨드
docker logs daemonized_container
  • tail 커맨드 처럼 -f 옵션을 설정해서 tailing이 가능하다.
docker logs -f demonized_container
  • --tail 옵션으로 log의 부분만 볼 수 있다.
docker logs --tail 10 daemonized_container 
  • -t: 각 로그에 timestamp가 추가된다. 디버깅에 용이하다.
docker logs -ft daemonized_container
  • --log-driver

    • Docker 1.6 버젼 부터는 --log-driver 옵션을 설정하여 더 다양한 로그 설정을 할 수 있다.
    • Default는 json-file 로서 docker logs 로 볼수 있는 기본적인 로그다.
    • syslog 로 설정하면 docker logs 커맨드는 disable되고 모든 로그는 Syslog로 redirect된다.
    • docker run --log-driver="syslog" --name daemonized_container -d <docker_image>
    • none: 로깅을 disable 한다.
    • 그 외에도 여러 로깅 옵션이 있다.

Docker Process Inspection

  • docker top
docker top daemonized_container
  • docker stats
docker stats daemonized_container

Docker Container Inspection

  • docker inspect command
  • -f or --format option to selectively query the inspect results
docker inspect --format='{{.NetworkSettings.IPAddress }}' daemonized_container

To run additional process inside a running container

  • docker exec
docker exec -d daemonized_container touch /etc/new_config_file

To stop & kill docker container

  • docker stop: sends a SIGTERM signal.
  • docker kill: sends a SIGKILL signal.

To delete a container

  • docker rm
  • To delete all docker container:
docker rm -f `sudo docker ps -a -q`
  • the -f flag forces to delete any running containers. If you want to protect running containers, omit the flag.

Automatic restart

  • --restart flag 설정으로 docker container가 멈추었을때 다시 자동으로 시작하게 할 수 있다.

    • no: do not automatically restart the container. (the default)
    • on-failure: restart the container if it exits due to an error, which manifests as a non-zero exit code.
    • This flag also accepts an optional restart count: --restart=on-failure:5
    • unless-stopped: restart the container unless it is explicitly stopped or Docker itself is stopped or restarted.
    • always: always restart the container if it stops.