docker compose images 명령어를 사용하여 이미지 목록을 보는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker compose images 명령어를 사용하여 docker-compose.yml 파일에 정의된 서비스에서 사용되는 Docker 이미지를 나열하는 방법을 배우게 됩니다. 먼저 간단한 docker-compose.yml 파일을 준비한 다음 docker compose up 명령어를 사용하여 서비스를 시작합니다.

그 후, 이미지를 나열하는 다양한 방법을 살펴볼 것입니다. 생성된 컨테이너에서 사용되는 모든 이미지를 나열하는 방법, quiet 옵션을 사용하여 이미지 ID 만 나열하는 방법, 그리고 더 쉽게 파싱할 수 있도록 JSON 형식으로 이미지를 나열하는 방법을 배우게 됩니다. 이 실습을 통해 Docker Compose 프로젝트 내에서 이미지를 관리하는 실질적인 기술을 습득할 수 있습니다.

간단한 docker-compose.yml 파일 준비

이 단계에서는 간단한 docker-compose.yml 파일을 준비합니다. 시작하기 전에 Docker Compose 를 설치해야 합니다. Docker Compose 는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다. Compose 를 사용하면 YAML 파일을 사용하여 애플리케이션의 서비스를 구성합니다. 그런 다음, 단일 명령으로 구성에서 모든 서비스를 생성하고 시작합니다.

먼저 Docker Compose 를 설치해 보겠습니다. Docker Compose 바이너리를 다운로드하고 실행 가능하게 만들 것입니다.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

이제 Docker Compose 버전을 확인하여 설치를 확인해 보겠습니다.

docker-compose --version

Docker Compose version v2.20.2와 유사한 출력을 볼 수 있습니다.

다음으로, 프로젝트 디렉토리를 생성하고 해당 디렉토리로 이동합니다.

mkdir ~/project/my-docker-app
cd ~/project/my-docker-app

이제 nano 편집기를 사용하여 docker-compose.yml 파일을 생성합니다. 이 파일은 nginx 이미지를 사용하여 간단한 웹 서비스를 정의합니다.

nano docker-compose.yml

nano 편집기에서 다음 내용을 붙여넣습니다.

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

docker-compose.yml 파일을 자세히 살펴보겠습니다.

  • version: '3.8'은 Compose 파일 형식 버전을 지정합니다.
  • services:는 애플리케이션의 서비스를 정의합니다.
  • web:은 서비스의 이름입니다.
  • image: nginx:latest는 이 서비스에 사용할 Docker 이미지를 지정합니다. 이 경우, nginx 이미지의 최신 버전을 사용하고 있습니다.
  • ports:는 호스트와 컨테이너 간의 포트를 매핑합니다. "80:80"은 호스트의 포트 80 을 컨테이너의 포트 80 에 매핑합니다.

Ctrl + X, Y, 그리고 Enter를 눌러 파일을 저장합니다.

서비스를 시작하기 전에 nginx:latest 이미지를 pull 해야 합니다.

docker pull nginx:latest

이 명령은 Docker Hub 에서 nginx:latest 이미지를 다운로드합니다.

docker-compose.yml 파일에 정의된 서비스 시작

이 단계에서는 docker-compose.yml 파일에 정의된 서비스를 시작합니다. docker-compose up 명령어를 사용하여 서비스를 빌드, 생성 및 시작합니다.

docker-compose.yml 파일을 생성한 ~/project/my-docker-app 디렉토리에 있는지 확인하십시오.

cd ~/project/my-docker-app

이제 다음 명령을 실행하여 서비스를 detached 모드 (백그라운드) 로 시작합니다.

docker-compose up -d

-d 플래그는 컨테이너를 detached 모드로 실행합니다. 즉, 컨테이너는 백그라운드에서 실행되며 터미널을 점유하지 않습니다.

web 서비스가 생성되고 시작되고 있음을 나타내는 출력을 볼 수 있습니다.

컨테이너가 실행 중인지 확인하려면 docker ps 명령어를 사용할 수 있습니다.

docker ps

nginx 이미지를 사용하는 my-docker-app-web-1 (또는 프로젝트 디렉토리 이름에 따라 유사한 이름) 이라는 컨테이너가 표시되고 상태가 Up이어야 합니다.

또한 curl을 사용하여 포트 80 에서 localhost에 액세스하여 웹 서버에 액세스할 수 있는지 확인할 수 있습니다.

curl http://localhost:80

터미널에서 기본 Nginx 환영 페이지 HTML 출력을 볼 수 있으며, 이는 웹 서버가 실행 중이고 액세스할 수 있음을 확인합니다.

생성된 컨테이너가 사용하는 이미지 목록 확인

이 단계에서는 현재 시스템에 있는 Docker 이미지를 나열합니다. 특히 방금 생성한 컨테이너에서 사용되는 이미지에 중점을 둡니다. docker images 명령어를 사용하여 이미지를 나열합니다.

다음 명령을 실행하여 모든 이미지를 나열합니다.

docker images

REPOSITORY, TAG, IMAGE ID, CREATED, 및 SIZE를 포함한 이미지 정보가 있는 테이블을 볼 수 있습니다. 여기에서 nginx 이미지가 나열되어야 합니다.

출력은 시스템에서 pull 되거나 빌드된 이미지를 보여줍니다. nginx 이미지는 이전 단계에서 pull 되었으며 현재 실행 중인 컨테이너에서 사용됩니다.

quiet 옵션을 사용하여 이미지 ID 만 목록으로 표시

이 단계에서는 docker images 명령어를 quiet 옵션과 함께 사용하여 이미지 ID 만 나열하는 방법을 배웁니다. 이는 스크립팅 또는 기타 목적으로 이미지 ID 목록을 얻어야 할 때 유용합니다.

quiet 옵션은 -q 플래그로 지정됩니다.

다음 명령을 실행하여 이미지 ID 만 나열합니다.

docker images -q

각 줄에 하나씩 이미지 ID 목록을 볼 수 있습니다. 이 출력은 docker images의 전체 출력보다 훨씬 간결합니다.

이 옵션은 오래된 이미지를 제거하는 등, 이미지를 프로그래밍 방식으로 처리하려는 경우 특히 유용합니다.

JSON 형식으로 이미지 목록 표시

이 단계에서는 Docker 이미지를 JSON 형식으로 나열하는 방법을 배웁니다. 이는 jq와 같은 도구를 사용하여 출력을 프로그래밍 방식으로 구문 분석하려는 경우 유용합니다.

docker images 명령어와 함께 --format 옵션을 사용하여 출력 형식을 지정할 수 있습니다. JSON 형식으로 출력을 얻으려면 json 키워드를 사용합니다.

다음 명령을 실행하여 JSON 형식으로 이미지를 나열합니다.

docker images --format json

이미지 정보를 나타내는 구조화된 방식인 JSON 형식으로 출력을 볼 수 있습니다. 각 이미지는 JSON 배열 내의 JSON 객체로 표시됩니다.

이 형식은 JSON 데이터를 처리할 수 있는 스크립트 또는 기타 애플리케이션에 Docker 이미지 정보를 통합하는 데 이상적입니다.

이 단계를 완료한 후에는 원하는 경우 실행 중인 컨테이너를 중지하고 프로젝트 디렉토리를 제거할 수 있습니다.

컨테이너를 중지하려면 ~/project/my-docker-app 디렉토리로 다시 이동하여 다음을 실행합니다.

cd ~/project/my-docker-app
docker-compose down

이 명령어는 docker-compose up으로 생성된 컨테이너, 네트워크 및 볼륨을 중지하고 제거합니다.

프로젝트 디렉토리를 제거하려면 rm 명령어를 사용할 수 있습니다.

cd ~/project
rm -rf my-docker-app

요약

이 랩에서는 docker compose images 명령어를 사용하여 docker-compose.yml 파일에 정의된 서비스에서 사용되는 이미지를 나열하는 방법을 배웠습니다. 먼저 nginx 이미지를 사용하는 웹 서비스를 정의하는 간단한 docker-compose.yml 파일을 준비하는 것으로 시작했습니다. 여기에는 Docker Compose 설치 및 필요한 파일 구조 생성이 포함되었습니다.

그런 다음 docker-compose.yml 파일에 정의된 서비스를 시작했습니다. 마지막으로, 모든 이미지 세부 정보를 나열하고, quiet 옵션을 사용하여 이미지 ID 만 나열하고, JSON 형식으로 이미지를 나열하는 등 생성된 컨테이너에서 사용되는 이미지를 나열하는 다양한 방법을 살펴보았습니다.