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