docker compose ls 명령으로 Compose 프로젝트 목록 확인 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker compose ls 명령어를 효과적으로 사용하여 Docker Compose 프로젝트를 나열하고 관리하는 방법을 배우게 됩니다. 먼저, Docker Compose 를 설치해야 하는 경우 설치하고, docker-compose.yml 파일을 생성하고, 프로젝트를 시작하는 등 샘플 Compose 프로젝트를 설정하는 것으로 시작합니다.

프로젝트 설정 후에는 docker compose ls를 사용하여 Compose 프로젝트를 나열하는 다양한 방법을 탐색합니다. 여기에는 실행 중인 프로젝트만 나열하기, 중지된 프로젝트를 포함한 모든 프로젝트 나열하기, 프로젝트 이름만 표시하기, 특정 기준에 따라 프로젝트 필터링하기 등이 포함됩니다. 이 랩을 마치면 docker compose ls를 사용하여 Compose 환경을 파악하는 데 능숙해질 것입니다.

샘플 Compose 프로젝트 시작

이 단계에서는 샘플 Compose 프로젝트를 시작하는 방법을 배우겠습니다. Docker Compose 를 사용하기 전에 먼저 설치해야 합니다. LabEx VM 환경에는 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 가 올바르게 설치되었음을 확인하는 버전 정보가 콘솔에 출력되어야 합니다.

이제 간단한 Compose 프로젝트를 만들어 보겠습니다. 프로젝트용 디렉토리를 만들고 그 안에 docker-compose.yml 파일을 만듭니다. 이 파일은 애플리케이션의 서비스를 정의합니다.

먼저 my-compose-app이라는 디렉토리를 만듭니다.

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

다음으로, nano 편집기를 사용하여 ~/project/my-compose-app 디렉토리에 docker-compose.yml이라는 파일을 만듭니다.

nano docker-compose.yml

다음 내용을 docker-compose.yml 파일에 추가합니다. 이 파일은 nginx 이미지를 사용하는 web이라는 단일 서비스를 정의합니다.

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

파일을 저장하고 nano 편집기를 종료합니다 ( Ctrl + X를 누른 다음 Y를 누르고 Enter를 누릅니다).

서비스를 시작하기 전에 nginx:latest 이미지가 로컬에서 사용 가능한지 확인해야 합니다. docker pull 명령을 사용하여 이미지를 가져올 수 있습니다.

docker pull nginx:latest

이제 docker-compose.yml 파일과 필요한 이미지가 있으므로 docker-compose up 명령을 사용하여 Compose 프로젝트를 시작할 수 있습니다. -d 플래그는 서비스를 분리된 모드 (detached mode) 로 실행합니다. 즉, 백그라운드에서 실행됩니다.

docker-compose up -d

이 명령은 docker-compose.yml 파일에 정의된 대로 web 서비스를 생성하고 시작합니다. 서비스가 생성되고 시작되고 있음을 나타내는 출력이 표시되어야 합니다.

서비스가 실행 중인지 확인하려면 docker ps 명령을 사용하여 실행 중인 컨테이너를 나열할 수 있습니다. web 서비스에 대한 컨테이너가 표시되어야 합니다.

docker ps

또한 웹 브라우저를 열고 LabEx VM 의 IP 주소로 이동하여 Nginx 웹 서버에 액세스할 수 있습니다. 컨테이너의 포트 80 을 호스트의 포트 80 에 매핑했으므로 기본 Nginx 시작 페이지가 표시되어야 합니다.

docker compose ls 를 사용하여 실행 중인 Compose 프로젝트 목록 확인

이전 단계에서 my-compose-app이라는 샘플 Compose 프로젝트를 시작했습니다. 이제 docker compose ls 명령을 사용하여 실행 중인 Compose 프로젝트를 나열하는 방법을 배우겠습니다.

docker compose ls 명령은 모든 Compose 프로젝트를 나열하는 데 사용됩니다. 기본적으로 실행 중인 프로젝트만 표시합니다.

docker-compose.yml 파일이 있는 ~/project/my-compose-app 디렉토리에 있는지 확인합니다.

cd ~/project/my-compose-app

이제 docker compose ls 명령을 실행합니다.

docker compose ls

다음과 유사한 출력이 표시되어야 합니다.

NAME              STATUS    CONFIG FILES
my-compose-app    running   docker-compose.yml

이 출력은 my-compose-app이라는 실행 중인 Compose 프로젝트가 하나 있으며, docker-compose.yml 구성 파일을 사용하고 있음을 보여줍니다.

docker compose ls 명령은 현재 활성 상태로 컨테이너를 실행 중인 Compose 프로젝트를 빠르게 확인할 수 있는 방법입니다.

docker compose ls -a 를 사용하여 중지된 Compose 프로젝트 포함, 모든 프로젝트 목록 확인

이전 단계에서 실행 중인 Compose 프로젝트를 나열했습니다. 기본적으로 docker compose ls는 실행 중인 컨테이너가 하나 이상 있는 프로젝트만 표시합니다. 중지된 프로젝트를 포함한 모든 Compose 프로젝트를 보려면 -a 플래그를 사용해야 합니다.

먼저 첫 번째 단계에서 시작한 my-compose-app 프로젝트를 중지해 보겠습니다. ~/project/my-compose-app 디렉토리에 있는지 확인합니다.

cd ~/project/my-compose-app

이제 docker-compose down 명령을 사용하여 프로젝트를 중지합니다. 이 명령은 docker-compose up으로 생성된 컨테이너, 네트워크 및 볼륨을 중지하고 제거합니다.

docker-compose down

서비스 및 리소스가 중지되고 제거되고 있음을 나타내는 출력이 표시되어야 합니다.

이제 프로젝트가 중지되었으므로 기본 docker compose ls 명령을 사용하여 Compose 프로젝트를 다시 나열해 보겠습니다.

docker compose ls

이번에는 my-compose-app 프로젝트가 중지되었으므로 나열되지 않아야 합니다.

이제 docker compose ls -a 명령을 사용하여 중지된 프로젝트를 포함한 모든 Compose 프로젝트를 나열해 보겠습니다.

docker compose ls -a

이제 다음과 유사한 출력이 표시되어야 합니다.

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

이 출력은 my-compose-app 프로젝트가 상태가 exited (중지됨) 임에도 불구하고 존재함을 보여줍니다. -a 플래그는 현재 상태에 관계없이 시스템에 정의된 모든 Compose 프로젝트를 확인하는 데 유용합니다.

docker compose ls -q 를 사용하여 프로젝트 이름만 목록으로 확인

이전 단계에서 상태 및 구성 파일과 함께 Compose 프로젝트를 나열했습니다. 스크립트에서 사용하기 위해 프로젝트 이름 목록만 필요한 경우가 있습니다. docker compose ls -q 명령을 사용하면 이 작업을 수행할 수 있습니다.

-q 플래그는 "quiet"를 의미하며 프로젝트 이름을 제외한 모든 출력을 억제합니다.

~/project/my-compose-app 디렉토리에 있는지 확인합니다.

cd ~/project/my-compose-app

이제 docker compose ls -q 명령을 실행합니다.

docker compose ls -q

콘솔에 Compose 프로젝트의 이름만 출력되는 것을 볼 수 있습니다.

my-compose-app

이는 추가 정보 없이 프로젝트 이름의 깔끔한 목록을 얻고 싶을 때 유용합니다. -q 플래그를 -a 플래그와 결합하여 중지된 프로젝트를 포함한 모든 Compose 프로젝트의 이름을 나열할 수 있습니다.

해 보겠습니다.

docker compose ls -a -q

여전히 다음을 볼 수 있습니다.

my-compose-app

이는 -q 플래그가 -a와 결합될 때 프로젝트가 실행 중인지 또는 중지되었는지 여부에 관계없이 프로젝트 이름만 출력함을 확인합니다.

docker compose ls --filter 를 사용하여 Compose 프로젝트 필터링

이 마지막 단계에서는 --filter 플래그를 사용하여 docker compose ls의 출력을 필터링하는 방법을 살펴보겠습니다. 이는 많은 Compose 프로젝트가 있고 특정 기준에 따라 특정 프로젝트를 찾고 싶을 때 유용합니다.

--filter 플래그를 사용하면 결과를 필터링하기 위해 키 - 값 쌍을 지정할 수 있습니다. 일반적인 필터는 status별로 필터링하는 것입니다.

먼저 my-compose-app 프로젝트가 중지되었는지 확인해 보겠습니다. 이전 단계에서 중지했지만 확인하는 것이 좋습니다.

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

이제 --filter 플래그를 사용하여 실행 중인 Compose 프로젝트만 나열해 보겠습니다. 프로젝트가 중지되었으므로 이 명령은 결과를 표시하지 않아야 합니다.

docker compose ls --filter status=running

실행 중인 Compose 프로젝트가 없으므로 출력이 표시되지 않아야 합니다.

이제 --filter 플래그를 사용하여 중지된 Compose 프로젝트만 나열해 보겠습니다.

docker compose ls --filter status=exited

다음과 유사한 출력이 표시되어야 합니다.

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

이는 my-compose-app 프로젝트의 상태가 exited이므로 나열됨을 보여줍니다.

프로젝트 name과 같은 다른 기준별로 필터링할 수도 있습니다. my-compose-app이라는 프로젝트를 필터링해 보겠습니다.

docker compose ls --filter name=my-compose-app

이것은 또한 my-compose-app 프로젝트를 표시해야 합니다.

NAME              STATUS     CONFIG FILES
my-compose-app    exited     docker-compose.yml

--filter 플래그는 Compose 파일로 정의된 다양한 애플리케이션이 많은 환경에서 특히 Compose 프로젝트를 관리하고 볼 수 있는 강력한 방법을 제공합니다.

요약

이 랩에서는 docker compose ls 명령을 사용하여 Docker Compose 프로젝트를 나열하는 방법을 배웠습니다. Docker Compose 를 설치하는 것으로 시작하여 docker-compose.yml 파일과 docker-compose up -d 명령을 사용하여 샘플 Compose 프로젝트를 생성하고 시작했습니다.

그런 다음 docker compose ls 명령의 다양한 옵션을 살펴보았습니다. docker compose ls를 사용하여 실행 중인 프로젝트를 나열하고, docker compose ls -a를 사용하여 중지된 프로젝트를 포함한 모든 프로젝트를 나열하고, docker compose ls -q를 사용하여 프로젝트 이름만 나열하고, docker compose ls --filter를 사용하여 특정 기준에 따라 프로젝트를 필터링했습니다. 이러한 단계는 Compose 프로젝트를 관리하고 검사하기 위한 docker compose ls 명령의 다재다능함을 보여주었습니다.