1. 개요

Docker 에서 개발자는 애플리케이션을 모든 의존성과 함께 컨테이너에 패키징하여 애플리케이션을 빌드, 배포 및 테스트할 수 있습니다. Docker Compose 는 서비스를 사용하여 여러 컨테이너를 관리하기 위한 필수 도구입니다.

이 사용방법(예제)에서는 Docker Compose를 사용하여 관리되는 Docker 컨테이너에서 여러 명령을 실행하는 방법을 이해합니다. 또한 Docker 컨테이너에서 여러 명령을 실행하는 다양한 방법을 살펴보겠습니다.

2. 단일 명령 실행

Docker Compose를 사용하면 Docker 컨테이너 내에서 명령을 실행할 수 있습니다. 컨테이너 시작 중에 명령 명령을 통해 모든 명령을 설정할 수 있습니다.

컨테이너 내에서 간단한 명령을 실행하는 docker-compose.yml 을 살펴보겠습니다 .

version: "3"
services:
 server:
   image: alpine
   command: sh -c "echo "baeldung""

위의 docker-compose.yml 파일에서 알파인 Docker 이미지 내에서 단일 echo 명령을 실행하고 있습니다 .

3. 여러 명령 실행

Docker Compose를 사용하여 docker-compose.yml 파일 에 서비스를 생성하여 여러 애플리케이션을 관리할 수 있습니다 . 특히 && | _ 운영자. 둘 다 살펴보겠습니다.

3.1. && 연산자 사용

Docker Compose가 여러 명령을 실행하는 방법을 보여주기 위해 간단한 docker-compose.yml 파일을 생성하여 시작하겠습니다 .

version: "3"
services:
 server:
   image: alpine
   command: sh -c "echo "baeldung" && echo "docker" "

여기에서는 알파인을 Docker 컨테이너의 기본 이미지로 사용했습니다 . echo baeldungecho docker 두 명령을 실행하는 마지막 줄에 주목하십시오 . && 연산자 에 의해 분할됩니다  .

결과를 보여주기 위해 docker-compose up 명령을 사용하여 이 이미지를 실행해 보겠습니다.

$ docker-compose up
Creating dockercompose_server_1 ... done
Attaching to dockercompose_server_1
server_1  | baeldung
server_1  | docker
dockercompose_server_1 exited with code 0

여기서 두 echo  문의 출력은 stdout 에 인쇄됩니다 .

3.2. 사용 | 운영자

|를 사용할 수도 있습니다. Docker Compose에서 여러 명령을 실행하는 연산자입니다. 구문 | 연산자는 && 연산자 와 약간 다릅니다 .

방법을 설명하기 위해 | 연산자가 작동합니다. docker-compose.yml 을 업데이트해 보겠습니다 .

version: "3"
services:
 server:
   image: alpine
   command:
      - /bin/sh
      - -c
      - |
        echo "baeldung"
        echo "docker"

여기에서 별도의 줄에 명령을 추가했습니다. 명령 명령을 제외하고 모든 것이 동일합니다 .

이 접근 방식은 모든 명령이 별도의 줄에 있기 때문에 YAML 파일을 깨끗하게 유지하므로 권장됩니다.

docker-compose up 명령을 사용하여 Docker 컨테이너를 다시 실행해 보겠습니다 .

$ docker-compose up
Creating dockercompose_server_1 ... done
Attaching to dockercompose_server_1
server_1  | baeldung
server_1  | docker
dockercompose_server_1 exited with code 0

위 출력에서 ​​볼 수 있듯이 두 명령이 하나씩 실행됩니다.

4. 결론

이 기사에서는 Docker Compose에서 여러 명령을 실행하는 방법을 시연했습니다. 먼저 && 연산자를 사용하여 둘 이상의 명령을 실행하는 방법을 살펴보았습니다 . 나중에 | 연산자를 사용하여 유사한 결과를 얻습니다.

res – REST with Spring (eBook) (everywhere)