Docker CLI 사용법

컨테이너 격리 기술

docker 컨테이너 lifecycle

docker 컨테이너를 수동으로 생성 -> docker run = [pull] + create + start + [command]

docker pull ubuntu:16.04
docker images

docker create -it --name myubuntu16-1 ubuntu:16.04
docker ps -a

docker start myubuntu16-1
docker attach myubuntu16-1

-----

한번에 한다면?
docker run -it --name=myubuntu16-2 ubuntu:16.04 bash

Docker 컨테이너 CLI

docker [container] run [option] docker_image [command]

docker CLI 옵션

docker top | port | stats

# 컨테이너엣 실행 중인 프로세스 조회.
docker top node-run

# 컨테이너에 매핑된 포트 조회
docker port node-run

# 컨테이너 리소스 사용 통계에 대한 실시간 스트림 출력(스트림 통계 비활성화, --no-stream)
docker stats node-run

docker stats와 유사한 통계, Metric 정보를 수집하는 cadvisor

# cadvisor 컨테이너 생성.

docker run \
--restart=always \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys/fs/cgroup:/sys/fs/cgroup:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=9559:8080 \
--detech=true \
--name=cadvisor \
--privileged \
--device=/dev/kmsg \
gcr.io/cadvisor/cadvisor:latest

---

docker ps -a

docker logs

# 컨테이너에서 발생하는 stdout(표준출력), stderr(표준에러) 출력.
while true; do curl 192.168.56.101:6060; sleep 3; done

# 다른 터미널에서.
docker logs -f node-run

# 출력되는 로그 양이 큰 경우, disk full error의 원인.
docker info | grep -i log

# 출력되는 로그 양이 큰 경우, disk full error의 원인이 되기도 함.
sudo ls -l /var/lib/docker/containers/[CONTAINER ID]

# 해당 파일 내용 비우기.
sudo truncate -s 0 [CONTAINER ID]-json.log
# 컨테이너에서 발생하는 log size 제한.

sudo vi /etc/docker/daemon.json

sudo systemctl restart docker.service
sudo systemctl status docker.service

docker run -dit -p 6062:6060 --name=node-run2 \
-h node-run --log-driver json-file --log-opt max-size=30m --log-opt max-file=10 \
noderun:1.0

# mySQL 컨테이너 로그 확인.

docker run -dit --name=mydb mysql:5.7-debian
docker ps -a
docker logs mydb

docker [container] inspect

# 컨테이너 내부 구조 정보 확인.

docker container inspect node-run

댓글

댓글 남기기