Post

[Docker] 도커 컨테이너 관리

✅ 컨테이너 완벽 관리: CLI 명령어 마스터하기

지난 포스팅에서는 도커 이미지를 효율적으로 관리하는 방법을 살펴보았습니다. 이번에는 도커 컨테이너를 생성하고 관리하는 데 필요한 CLI 명령어들을 자세히 알아보겠습니다. 컨테이너의 상태를 확인하고, 로그를 분석하며, 필요에 따라 수정 및 배포하는 방법까지, 컨테이너 관리의 모든 것을 마스터해 봅시다!

☑️ 컨테이너 격리 기술 이해하기

도커 컨테이너는 호스트 시스템과 격리된 환경에서 애플리케이션을 실행합니다. 이러한 격리 기술은 chroot, pivot_root, namespace, cgroup 등을 통해 구현됩니다.

  • chroot, pivot_root: 컨테이너의 루트 파일 시스템을 변경하여 컨테이너 내부 프로세스가 호스트 시스템의 파일 시스템에 접근하는 것을 제한합니다.
  • namespace: 컨테이너별로 독립적인 네임스페이스를 제공하여 프로세스, 네트워크, 마운트 포인트 등을 격리합니다.
  • cgroup: 컨테이너별로 CPU, 메모리, 디스크 I/O 등의 자원 사용량을 제한하고 관리합니다.

이러한 격리 기술 덕분에 여러 개의 컨테이너를 안전하게 실행하고 관리할 수 있습니다.

☑️컨테이너 관리를 위한 Docker CLI (1)

📌컨테이너 생성 및 실행:

  • docker create: 이미지를 기반으로 컨테이너를 생성하지만, 실행하지는 않습니다.
  • docker start: 생성된 컨테이너를 실행합니다.
  • docker run: 이미지를 기반으로 컨테이너를 생성하고 즉시 실행합니다. 컨테이너가 실행 중인 상태에서 터미널에 접속하려면 it 옵션을 사용합니다.
  • docker stop: 실행 중인 컨테이너를 정상적으로 종료합니다.
  • docker kill: 실행 중인 컨테이너를 강제로 종료합니다.
  • docker rm: 컨테이너를 삭제합니다.

📌컨테이너 정보 확인:

  • docker ps: 실행 중인 컨테이너 목록을 확인합니다.
  • docker ps -a: 모든 컨테이너 목록을 확인합니다.
  • docker top: 컨테이너에서 실행 중인 프로세스를 조회합니다.
  • docker port: 컨테이너에 매핑된 포트를 조회합니다.
  • docker stats: 컨테이너의 리소스 사용량을 실시간으로 모니터링합니다.
  • docker inspect: 컨테이너의 상세 정보를 JSON 형식으로 출력합니다.
  • docker diff: 컨테이너의 파일 시스템 변경 사항을 확인합니다.
  • docker logs: 컨테이너의 표준 출력(stdout) 및 표준 에러(stderr) 로그를 확인합니다.

📌컨테이너 상태 변경:

  • docker start, docker stop, docker restart: 컨테이너를 시작, 중지, 재시작합니다.
  • docker pause, docker unpause: 컨테이너를 일시 중지하거나 재개합니다.
  • docker kill: 컨테이너를 강제 종료합니다.

📌컨테이너 파일 관리:

  • docker cp: 컨테이너와 호스트 간에 파일을 복사합니다.

📌컨테이너 이미지 생성:

  • docker commit: 실행 중인 컨테이너의 변경 사항을 새로운 이미지로 저장합니다.

📌컨테이너 내부 명령 실행:

  • docker exec: 실행 중인 컨테이너 내부에서 명령을 실행합니다.
  • docker attach: 실행 중인 컨테이너의 표준 입출력에 연결하여 컨테이너와 상호 작용합니다.

☑️컨테이너 관리를 위한 Docker CLI (2)

📌컨테이너 이벤트 확인:

  • docker events: 도커 데몬에서 발생하는 이벤트를 실시간으로 확인합니다.

📌컨테이너 로그 관리:

  • docker logs: 컨테이너의 로그를 확인합니다.
  • docker logs -f: 컨테이너의 로그를 실시간으로 확인합니다.
  • 로그 용량 제한 설정: /etc/docker/daemon.json 파일에서 max-sizemax-file 옵션을 설정하여 컨테이너 로그의 최대 크기와 파일 개수를 제한할 수 있습니다.

📌컨테이너 백업 및 마이그레이션:

  • docker export: 실행 중인 컨테이너의 파일 시스템을 tar 아카이브로 내보냅니다.
  • docker import: tar 아카이브를 새로운 이미지로 가져옵니다.

주의 사항: docker export로 생성된 이미지는 CMD 명령어가 없으므로, 컨테이너 실행 시 명령어를 명시해야 하거나, docker import--change 옵션을 사용하여 CMD를 추가해야 합니다.

☑️ 마무리하며

이번 포스팅에서는 도커 컨테이너를 관리하는 데 필요한 다양한 CLI 명령어들을 살펴보았습니다. 컨테이너 생성, 실행, 중지, 삭제, 정보 확인, 로그 관리, 파일 복사, 이미지 생성, 백업 및 마이그레이션 등 컨테이너 관리의 모든 것을 다루었습니다. 다음 포스팅에서는 도커 네트워크에 대해 자세히 알아보겠습니다. 궁금한 점이나 의견이 있다면 언제든지 댓글을 남겨주세요!

참고: 실습 환경 및 도커 버전에 따라 일부 명령어나 설정이 다를 수 있습니다. 자세한 내용은 도커 공식 문서를 참고하시기 바랍니다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.