모든 스택 나열
이 단계에서는 시스템에서 실행 중인 모든 Docker 스택을 나열하는 방법을 배우게 됩니다. Docker 스택은 함께 배포되는 서비스의 모음입니다. 스택을 나열하기 전에, 멀티 컨테이너 Docker 애플리케이션을 정의하고 실행하는 데 사용되는 Docker Compose 를 설치해야 합니다.
먼저, 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
첫 번째 명령은 공식 GitHub 저장소에서 Docker Compose 바이너리를 다운로드합니다. $(uname -s) 및 $(uname -m)은 머신의 운영 체제와 아키텍처를 가져와 올바른 바이너리를 다운로드하도록 합니다. 두 번째 명령은 다운로드한 파일을 실행 가능하게 만듭니다.
이제 Docker Compose 가 설치되었으므로 버전을 확인하여 설치를 확인해 보겠습니다.
docker-compose --version
출력에서 설치된 Docker Compose 버전을 확인할 수 있습니다.
스택 나열을 시연하기 위해 간단한 스택을 배포해야 합니다. 간단한 웹 서비스를 정의하는 docker-compose.yml 파일을 만들 것입니다.
nano ~/project/docker-compose.yml
다음 내용을 docker-compose.yml 파일에 붙여넣습니다.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
이 docker-compose.yml 파일은 nginx:latest 이미지를 사용하고 호스트의 포트 80 을 컨테이너의 포트 80 에 매핑하는 web이라는 단일 서비스를 정의합니다.
이제 docker stack deploy 명령을 사용하여 이 스택을 배포해 보겠습니다. 스택 이름을 mywebstack으로 지정합니다.
docker stack deploy -c ~/project/docker-compose.yml mywebstack
-c 플래그는 사용할 Compose 파일을 지정하고, mywebstack은 스택에 부여하는 이름입니다. 서비스가 생성되고 배포되고 있음을 나타내는 출력을 볼 수 있습니다.
스택을 배포한 후 docker stack ls 명령을 사용하여 실행 중인 모든 스택을 나열할 수 있습니다.
docker stack ls
이 명령은 스택 이름, 서비스 수, 각 서비스에 대한 원하는 복제본 수와 현재 복제본 수를 포함하여 배포된 모든 스택 목록을 표시합니다. 출력에서 mywebstack이 나열된 것을 볼 수 있습니다.