Docker CLI
https://docs.docker.com/engine/reference/commandline/cli/
docker [container] 컨테이너가 기본값이다. 그래서 다른 명령어와 달리 명시하지 않고 사용 가능하다.
# 모니터링을 위한 상태 확인
docker top
docker port
docker stats
> cadvisor 도커를 올려서 모니터링도 가능
로그 목적 : 컨테이너 내부의 오류를 알려주기 위해 사용한다.
docker logs -f [컨테이너]
docker info | grep -i log # 로그 정보 확인 가능.
vi /etc/docker/daemon.json # 도커 데몬에 대한 설정으로 제어 가능
컨테이너에 옵션으로 설정도 가능.
docker inspect
docker cp | restart # copy. 주로 배포(업데이트)할때 쓰인다.
docker events # docker engine의 로그
docker kill # 컨테이너 삭제. 번외(리눅스) kill -9 : 컨테이너가 아닌 연결된 세션만 끊는다.
docker exit code
docker attach # 내부의 로그를 보기 위한 접속
docker exec # 내부에서 작업을 하기 위한 접속
docker diff # 변동 사항 확인 연동
docker commit # 변동 사항을 포함하여 이미지로 저장.
docker export | import # 변동사항을 포함하여 파일로 저장. import 할때는 고려 사항이 있으니 참고.
컨테이너 격리 기술
컨테이너 = [RO]이미지 스냅샷(package,libraray,..) + [RW]Process(pid=1)
격리 기술 | Description |
chroot | 프로세스의 루트 디렉토리를 변경, 격리하여 가상의 루트 디렉터리를 생성 |
pivot_root | 루트 파일시스템 자체를 바꿔, 컨테이너가 전용 루트 파일시스템을 가지도록 함(chroot 보완) |
Mount namespace | namespace 내의 파일 시스템 트리를 구성 |
UTS namespace | 컨테이너에 대한 hostname 격리를 수행하여 고유한 hostname 보유 가능 |
PID namespace | PID와 프로세스를 분리(systemd와 분리) |
Network namespace | 네트워크 리소스(IP, Port, route table, ethernet,..) 할당 |
IPC namespace | 전용의 process table 보유 |
컨테이너 lifecycle
docker create : create snapshot of image on /var/lib/docker
docker start/stop : create/remove container layer for dynamic container
docker rm : remove created snapshot of image
docker run : docker create + docker start
'Infra > IaC' 카테고리의 다른 글
[Docker] Dockerfile 경량화 (0) | 2023.10.26 |
---|---|
[Docker] docker volume 데이터 지속성 및 데이터 관리 (1) | 2023.10.26 |
[Docker] 리소스 모니터링과 자원 할당 관리 (0) | 2023.10.24 |
[Docker] Network 관리 (2) | 2023.10.20 |
[Docker] docker image 관리 (0) | 2023.10.15 |