Docker 컨테이너 목록 조회 방법

DockerBeginner
지금 연습하기

소개

Docker 는 가벼우면서도 휴대 가능한 컨테이너화 솔루션을 제공하여 소프트웨어 배포 방식을 혁신했습니다. Docker 컨테이너 목록을 보고 관리하는 방법을 이해하는 것은 개발자와 시스템 관리자에게 매우 중요합니다. 이 튜토리얼에서는 다양한 시나리오에서 Docker 컨테이너를 효과적으로 목록화, 검사 및 추적하는 방법을 안내합니다.

Docker 컨테이너 개요

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

Docker 컨테이너는 소프트웨어 실행에 필요한 모든 것을 포함하는 가볍고 독립적인 실행 패키지입니다. 코드, 런타임 환경, 시스템 도구, 라이브러리 및 설정 등이 포함됩니다. 컨테이너는 다양한 컴퓨팅 플랫폼에서 애플리케이션을 일관되고 재현 가능한 환경에서 실행할 수 있도록 지원합니다.

Docker 컨테이너의 주요 특징

격리

컨테이너는 애플리케이션을 호스트 시스템과 다른 컨테이너로부터 격리하여 각 애플리케이션이 다른 애플리케이션과 간섭하지 않고 고유한 환경에서 실행되도록 보장합니다.

graph TD
    A[호스트 운영 체제] --> B[컨테이너 1]
    A --> C[컨테이너 2]
    A --> D[컨테이너 3]

이식성

컨테이너는 개발 환경부터 프로덕션 환경까지 다양한 환경에서 일관되게 실행될 수 있으므로 "내 컴퓨터에서는 작동하는데"와 같은 문제를 줄여줍니다.

효율성

컨테이너는 기존 가상 머신에 비해 호스트 시스템의 커널을 공유하고 오버헤드가 적기 때문에 자원을 더 효율적으로 사용합니다.

컨테이너 대 가상 머신

특징 Docker 컨테이너 가상 머신
자원 사용량 가볍게 사용 무겁게 사용
시작 시간 몇 초 몇 분
격리 수준 프로세스 수준 전체 시스템
성능 높음 낮음

일반적인 사용 사례

  1. 마이크로서비스 아키텍처
  2. 지속적 통합/지속적 배포 (CI/CD)
  3. 클라우드 네이티브 애플리케이션 개발
  4. 개발 및 테스트 환경

기본 Docker 컨테이너 워크플로우

graph LR
    A[Docker 이미지] --> B[컨테이너 생성]
    B --> C[컨테이너 시작]
    C --> D[애플리케이션 실행]
    D --> E[컨테이너 중지]
    E --> F[컨테이너 제거]

LabEx 시작하기

Docker 컨테이너에 대한 실습 경험을 얻으려면 LabEx 는 컨테이너 기술을 숙달하는 데 도움이 되는 대화형 환경과 포괄적인 튜토리얼을 제공합니다.

컨테이너 목록 확인

기본 Docker 컨테이너 목록 명령어

실행 중인 컨테이너 목록

현재 실행 중인 컨테이너를 보려면 docker ps 명령어를 사용합니다.

docker ps

모든 컨테이너 목록 (중지된 컨테이너 포함)

중지된 컨테이너를 포함한 모든 컨테이너를 보려면:

docker ps -a

고급 컨테이너 목록 기술

컨테이너 필터링

Docker 는 특정 컨테이너를 보기 위한 강력한 필터링 옵션을 제공합니다.

## 상태 필터링
docker ps -f "status=running"

## 이미지 필터링
docker ps -f "ancestor=ubuntu:latest"

사용자 지정 출력 형식

특정 열로 컨테이너 목록을 사용자 지정합니다.

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"

컨테이너 목록 시각화

graph TD
    A[Docker 명령어] --> B{목록 유형}
    B --> |실행 중인 컨테이너| C[docker ps]
    B --> |모든 컨테이너| D[docker ps -a]
    B --> |필터링된 컨테이너| E[docker ps -f]

자세한 컨테이너 정보

특정 컨테이너 검사

특정 컨테이너에 대한 자세한 정보를 얻으려면:

docker inspect [CONTAINER_ID]

컨테이너 목록 속성

속성 설명 예시
CONTAINER ID 고유 컨테이너 식별자 a1b2c3d4e5f6
IMAGE 기본 이미지 ubuntu:latest
COMMAND 실행 중인 명령어 /bin/bash
CREATED 컨테이너 생성 시간 2 시간 전
STATUS 현재 컨테이너 상태 45 분 전 실행 중
PORTS 노출된 포트 80/tcp
NAMES 컨테이너 이름 friendly_newton

LabEx Pro 팁

Docker 컨테이너 목록을 다룰 때, LabEx 는 숙련도와 이해도를 높이기 위해 제어된 환경에서 이러한 명령어를 연습할 것을 권장합니다.

실제 시나리오

  1. 컨테이너 수명주기 모니터링
  2. 컨테이너 배포 문제 해결
  3. 여러 컨테이너 환경 관리
  4. 컨테이너 자원 감사

컨테이너 관리 기법

컨테이너 수명주기 관리

컨테이너 시작

docker start 명령어를 사용하여 컨테이너를 시작합니다.

docker start [CONTAINER_ID]

컨테이너 중지

실행 중인 컨테이너를 정상적으로 중지합니다.

docker stop [CONTAINER_ID]

컨테이너 재시작

단일 명령어로 컨테이너를 재시작합니다.

docker restart [CONTAINER_ID]

컨테이너 수명주기 워크플로우

graph TD
    A[컨테이너 생성] --> B[컨테이너 시작]
    B --> C{컨테이너 상태}
    C --> |실행 중| D[명령어 실행]
    C --> |중지됨| E[재시작/삭제]
    D --> F[컨테이너 중지]
    F --> G[컨테이너 삭제]

고급 컨테이너 관리

대화형 컨테이너 실행

컨테이너 내부에서 대화형 쉘을 시작합니다.

docker run -it ubuntu:latest /bin/bash

실행 중인 컨테이너에서 명령어 실행

활성 컨테이너에서 명령어를 실행합니다.

docker exec [CONTAINER_ID] command

컨테이너 리소스 관리

컨테이너 리소스 제한

CPU 및 메모리 사용량을 제어합니다.

docker run --cpus=2 --memory=1g ubuntu:latest

리소스 사용량 모니터링

컨테이너 성능을 추적합니다.

docker stats [CONTAINER_ID]

컨테이너 관리 기법

기법 명령어 설명
생성 docker create 컨테이너를 시작하지 않고 준비
실행 docker run 컨테이너를 생성하고 시작
중지 docker stop 컨테이너를 정상적으로 중지
삭제 docker rm 컨테이너를 삭제
일시 정지 docker pause 컨테이너를 일시적으로 멈춤

컨테이너 네트워킹

포트 매핑

컨테이너 포트를 호스트에 노출합니다.

docker run -p 8080:80 nginx:latest

사용자 지정 네트워크 생성

격리된 컨테이너 네트워크를 생성합니다.

docker network create mynetwork
docker run --network=mynetwork nginx:latest

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

컨테이너 스냅샷 생성

실행 중인 컨테이너에서 이미지를 생성합니다.

docker commit [CONTAINER_ID] myimage:backup

컨테이너 내보내기

마이그레이션을 위해 컨테이너 상태를 저장합니다.

docker export [CONTAINER_ID] > container.tar

LabEx 권장 사항

포괄적인 Docker 컨테이너 관리를 위해 LabEx 는 실제 기술을 습득하기 위해 제어된 시뮬레이션 환경에서 이러한 기법을 연습할 것을 권장합니다.

권장 사항

  1. 항상 리소스 제한을 사용합니다.
  2. 적절한 컨테이너 모니터링을 구현합니다.
  3. 정기적으로 사용하지 않는 컨테이너를 정리합니다.
  4. 컨테이너 구성에 버전 관리를 사용합니다.
  5. 보안 스캐닝을 구현합니다.

요약

Docker 컨테이너 목록 관리를 마스터하는 것은 강력하고 효율적인 컨테이너화된 환경을 유지하는 데 필수적입니다. Docker CLI 명령어와 고급 필터링 기법을 활용하여 실행 중인 컨테이너와 중지된 컨테이너에 대한 포괄적인 정보를 얻을 수 있으며, 이는 리소스 관리 및 시스템 모니터링을 개선하는 데 도움이 됩니다.