Docker 컨테이너 목록 생성 방법

DockerBeginner
지금 연습하기

소개

Docker 는 애플리케이션을 컨테이너화하는 인기 있는 도구로, 소프트웨어 개발, 배포 및 관리를 더욱 용이하게 합니다. 이 튜토리얼에서는 Docker 컨테이너를 나열하는 방법, Docker 환경 관리에 필수적인 작업에 대해 알아봅니다.

Docker 컨테이너 이해

Docker 는 개발자가 일관되고 격리된 환경 (컨테이너) 에서 애플리케이션을 구축, 배포 및 실행할 수 있도록 지원하는 인기 있는 오픈소스 플랫폼입니다. 컨테이너는 애플리케이션 코드, 종속성 및 런타임을 하나의 패키지로 포장한 경량, 휴대 가능하고 자체 포함된 단위입니다.

Docker 컨테이너란 무엇인가요?

Docker 컨테이너는 애플리케이션과 모든 종속성을 하나의 표준화된 단위로 패키징하여 다양한 컴퓨팅 환경에서 일관되게 배포 및 실행할 수 있도록 하는 방법입니다. 각 컨테이너에는 애플리케이션, 모든 종속성 및 경량 운영 체제가 포함되어 있어, 기본 인프라에 관계없이 애플리케이션이 항상 동일하게 실행됩니다.

Docker 컨테이너의 장점

  • 일관성: 컨테이너는 기본 인프라에 관계없이 애플리케이션이 동일한 방식으로 실행되도록 보장하여 "내 컴퓨터에서는 작동하는데" 문제를 해결합니다.
  • 확장성: 컨테이너는 변화하는 요구 사항에 맞춰 쉽게 확장 또는 축소할 수 있으므로 애플리케이션 관리 및 배포를 더욱 용이하게 합니다.
  • 효율성: 컨테이너는 호스트 운영 체제의 커널을 공유하기 때문에 기존 가상 머신보다 더 경량적이고 효율적입니다. 이는 리소스 사용량과 시작 시간을 줄입니다.
  • 이식성: 컨테이너는 개발자의 노트북에서 프로덕션 서버까지 다양한 환경에서 쉽게 이동 및 배포할 수 있으며 복잡한 구성 변경 없이 사용할 수 있습니다.

Docker 아키텍처

Docker 는 Docker 클라이언트가 Docker 데몬과 통신하는 클라이언트 - 서버 아키텍처를 사용합니다. Docker 데몬은 Docker 컨테이너를 구축, 실행 및 관리하는 역할을 합니다. Docker 데몬은 호스트 머신에서 실행되며, Docker 클라이언트는 동일한 머신 또는 원격 머신에서 실행될 수 있습니다.

graph TD
    A[Docker Client] -- 통신 --> B[Docker Daemon]
    B -- 관리 --> C[Docker Containers]
    B -- 관리 --> D[Docker Images]
    B -- 관리 --> E[Docker Volumes]
    B -- 관리 --> F[Docker Networks]

Docker 이미지와 컨테이너

Docker 이미지는 Docker 컨테이너를 만드는 설계도입니다. 애플리케이션을 실행하는 데 필요한 애플리케이션 코드, 종속성 및 구성이 포함되어 있습니다. Docker 이미지를 실행하면 Docker 컨테이너가 생성됩니다. 이는 이미지의 실행 인스턴스입니다.

graph LR
    A[Docker Image] -- 생성 --> B[Docker Container]
    B -- 실행 --> C[Application]

Docker 컨테이너의 기본 개념을 이해함으로써 Docker 컨테이너를 나열하고 관리하는 방법을 탐색할 수 있습니다.

Docker 컨테이너 목록

Docker 환경을 관리하고 모니터링하는 데 있어 Docker 컨테이너 목록을 보는 것은 필수적인 작업입니다. docker ps 명령어는 실행 중인 컨테이너에 대한 정보를 나열하고 보는 주요 방법입니다.

실행 중인 컨테이너 목록

현재 실행 중인 모든 Docker 컨테이너를 나열하려면 다음 명령어를 사용합니다.

docker ps

이 명령어는 다음 정보가 포함된 표를 표시합니다.

  • 컨테이너 ID
  • 이미지
  • 명령
  • 생성 시간
  • 상태
  • 포트
  • 이름

실행 중이지 않은 컨테이너도 포함하여 모든 컨테이너를 나열하려면 -a 또는 --all 플래그를 추가할 수 있습니다.

docker ps -a

컨테이너 목록 사용자 지정

--format 플래그를 사용하여 컨테이너 목록에 표시되는 정보를 사용자 지정할 수 있습니다. 예를 들어, 컨테이너 ID, 이미지 및 상태를 표시하려면 다음 명령어를 사용할 수 있습니다.

docker ps --format "{{.ID}} {{.Image}} {{.Status}}"

이 명령어는 지정된 열이 포함된 표를 출력합니다.

컨테이너 ID 이미지 상태
1234567890ab ubuntu:latest 5 분 전 시작
0987654321cd nginx:latest 종료됨 (0) 10 분 전

또한 --filter 또는 -f와 같은 다양한 옵션을 사용하여 컨테이너 목록을 필터링할 수 있습니다. 예를 들어, 특정 이름을 가진 컨테이너만 나열하려면 다음 명령어를 사용할 수 있습니다.

docker ps -a --filter "name=my-container"

중지된 컨테이너 목록

중지된 컨테이너만 나열하려면 다음 명령어를 사용할 수 있습니다.

docker ps --filter "status=exited"

이 명령어는 종료되거나 중지된 모든 컨테이너의 목록을 표시합니다.

Docker 컨테이너 목록을 보는 방법을 이해함으로써 Docker 환경을 효과적으로 관리하고 모니터링할 수 있습니다. 다음 섹션에서는 Docker 컨테이너에 대한 더 많은 통찰력을 얻을 수 있도록 고급 목록 옵션을 살펴볼 것입니다.

고급 목록 옵션 탐색

기본 docker ps 명령어는 실행 중인 컨테이너에 대한 풍부한 정보를 제공하지만, Docker 는 Docker 환경에 대한 더 깊은 통찰력을 얻을 수 있도록 여러 고급 옵션을 제공합니다.

상태별 컨테이너 목록

실행 중인 컨테이너 목록 외에도 컨테이너의 상태별로 목록을 생성할 수 있습니다. 예를 들어, 현재 종료되거나 중지된 모든 컨테이너를 나열하려면 다음 명령어를 사용할 수 있습니다.

docker ps -a --filter "status=exited"

"created", "restarting", 또는 "paused"와 같은 다른 상태별로 컨테이너를 나열할 수도 있습니다.

레이블별 컨테이너 목록

Docker 는 컨테이너에 레이블을 지정할 수 있도록 지원하며, 이는 컨테이너를 정리하고 필터링하는 데 유용합니다. 특정 레이블별로 컨테이너를 나열하려면 --filter 옵션을 사용할 수 있습니다.

docker ps --filter "label=my-label=value"

이 명령어는 레이블 "my-label"이 "value" 값을 가진 모든 컨테이너를 나열합니다.

리소스 사용량별 컨테이너 목록

컨테이너의 리소스 사용량 정보를 얻으려면 docker stats 명령어를 사용할 수 있습니다. 이 명령어는 각 실행 중인 컨테이너의 CPU, 메모리, 네트워크 및 블록 I/O 사용량에 대한 실시간 통계를 표시합니다.

docker stats

docker stats의 출력을 컨테이너 이름이나 레이블과 같이 docker ps와 동일한 기법으로 필터링할 수 있습니다.

JSON 형식의 컨테이너 목록

docker ps의 출력을 프로그래밍 방식으로 처리해야 하는 경우 --format 옵션을 사용하여 컨테이너 정보를 JSON 형식으로 출력할 수 있습니다. 이는 Docker 컨테이너 관리를 자체 스크립트 또는 애플리케이션에 통합하는 데 유용할 수 있습니다.

docker ps --format '{{json .}}'

이러한 고급 목록 옵션을 탐색함으로써 Docker 컨테이너에 대한 더 깊은 이해를 얻고 Docker 환경을 효과적으로 관리할 수 있습니다.

요약

이 튜토리얼을 마치면 Docker 컨테이너를 나열하는 방법, 그리고 고급 나열 옵션을 탐색하는 방법에 대한 확실한 이해를 얻게 될 것입니다. 이 지식은 Docker 기반 애플리케이션과 인프라를 효과적으로 관리하는 데 힘이 될 것입니다.