Docker Compose: 기본 및 사용법

Docker Compose.NET 기반 응용 프로그램을 관리하고 배포하는 데 사용되는 강력하고 널리 사용되는 도구입니다 Docker. Docker 여러 컨테이너를 단일 프로젝트로 정의, 구성 및 실행하여 애플리케이션 배포를 단순화하고 개발 환경과 프로덕션 환경 간의 일관성을 보장할 수 있습니다 .

다음은 몇 가지 개념과 예입니다 Docker Compose.

docker-compose.yml 파일을 사용하여 프로젝트 정의

파일 에서 docker-compose.yml 애플리케이션에 필요한 서비스를 정의할 수 있습니다. 예를 들어 MySQL 데이터베이스와 함께 PHP 웹 애플리케이션을 배포하려면 다음과 같이 두 가지 서비스를 정의할 수 있습니다.

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

web 위의 코드 스니펫에서 두 가지 서비스인 및 를 정의합니다 db. 이 서비스는 와 함께 web PHP 7.4를 사용 하고 포트 80에서 수신하며 호스트의 디렉토리 를. 이 서비스는 MySQL 5.7을 사용 하고 데이터베이스에 필요한 일부 환경 변수를 설정합니다. image Apache ./app /var/www/html container db image

 

Docker Compose 명령 사용

파일에서 프로젝트를 정의하면 명령을 사용하여 서비스를 관리 docker-compose.yml 할 수 있습니다. Docker Compose

  • 프로젝트 시작: docker-compose up

    이 명령은 파일에 정의된 서비스에 대한 컨테이너를 시작합니다 docker-compose.yml.

  • 컨테이너를 중지하고 제거합니다. docker-compose down

    이 명령은 프로젝트와 관련된 모든 컨테이너를 중지하고 제거합니다.

  • 실행 중인 컨테이너 나열: docker-compose ps

    이 명령은 프로젝트의 컨테이너 상태를 표시합니다.

  • 서비스 로그 보기: docker-compose logs

    이 명령은 프로젝트의 서비스 로그를 보여줍니다.

 

환경 변수 및 사용자 정의

Docker Compose 환경 변수를 사용하여 개발 및 프로덕션과 같은 다양한 환경에 대한 구성을 사용자 정의할 수 있습니다. 파일 에서 환경 변수를 사용 docker-compose.yml 하고 해당 .env 파일에서 해당 값을 정의할 수 있습니다.

예를 들어 서비스 포트에 대한 환경 변수를 정의하려는 경우 다음과 같이 파일 web 에 행을 추가할 수 있습니다. .env

WEB_PORT=8080

그런 다음 docker-compose.yml 파일에서 이 환경 변수를 다음과 같이 사용할 수 있습니다.

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

docker-compose up 명령을 실행할 때 web 서비스는 포트 80 대신 포트 8080에서 수신 대기합니다.

 

Docker 스왐 과 통합

여러 노드가 있는 분산 환경에 애플리케이션을 배포하려는 경우 Docker Compose 와 통합할 수 있습니다 Docker Swarm. 이를 통해 클러스터의 여러 노드에서 서비스를 관리할 수 있습니다 Docker.

이 통합을 사용하려면 환경에서 또는 명령을 실행할 때 --orchestrate 또는 옵션을 추가하기만 하면 됩니다. --with-registry-auth docker stack deploy docker-compose up Swarm

 

Docker Compose 쉽고 효율적인 애플리케이션 개발, 테스트 및 배포를 위한 유용한 도구입니다. 개발 환경과 프로덕션 환경 간의 차이를 최소화하고 소프트웨어 개발 프로세스의 일관성을 보장하며 개발 팀의 생산성을 향상시킵니다.