>백엔드 개발 >PHP 튜토리얼 >Docker Compose를 사용하여 다중 컨테이너 PHP 애플리케이션을 패키지하고 배포하는 방법은 무엇입니까?

Docker Compose를 사용하여 다중 컨테이너 PHP 애플리케이션을 패키지하고 배포하는 방법은 무엇입니까?

王林
王林원래의
2023-07-31 11:57:241363검색

Docker Compose를 사용하여 다중 컨테이너 PHP 애플리케이션을 패키지하고 배포하는 방법은 무엇입니까?

네트워크 애플리케이션이 개발되면서 복잡한 다중 컨테이너 애플리케이션을 구축하고 배포하는 것이 점점 더 일반화되었습니다. Docker는 애플리케이션을 빠르게 구축하고 배포하는 데 도움이 되는 널리 사용되는 컨테이너화 플랫폼입니다. Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다.

이 기사에서는 Docker Compose를 사용하여 여러 컨테이너로 구성된 간단한 PHP 애플리케이션을 패키징하고 배포하는 방법을 소개합니다.

먼저 애플리케이션의 컨테이너를 정의하는 docker-compose.yaml 파일을 생성해야 합니다. 다음은 기본 예입니다.

version: '3'
services:
  webserver:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    depends_on:
      - database
    volumes:
      - ./src:/var/www/html
  database:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=secret
      - MYSQL_DATABASE=mydatabase
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword

위 파일은 웹 서버와 데이터베이스라는 두 가지 서비스를 정의합니다. 웹 서버는 Dockerfile 기반 이미지를 구축하고 애플리케이션의 소스 코드를 컨테이너의 /var/www/html 디렉터리에 마운트하는 PHP 애플리케이션 컨테이너입니다. 로컬 포트 ​​80을 컨테이너의 포트 80에 매핑하므로 localhost에 액세스하여 애플리케이션에 액세스할 수 있습니다. 웹 서버는 또한 데이터베이스 서비스에 의존함을 지정합니다.

데이터베이스 서비스는 공식 mysql:5.7 이미지를 사용하고 일부 환경 변수를 설정하여 MySQL 데이터베이스 설정을 구성합니다.

docker-compose.yaml 파일을 준비한 후 다음 명령을 사용하여 애플리케이션을 시작할 수 있습니다.

docker-compose up -d

위 명령은 모든 컨테이너를 생성하고 시작합니다. -d 매개변수를 사용하면 Docker Compose가 백그라운드에서 실행됩니다.

애플리케이션이 시작되면 다음 명령을 사용하여 컨테이너의 상태를 볼 수 있습니다.

docker-compose ps

이 명령은 실행 중인 모든 컨테이너와 해당 상태를 표시합니다.

애플리케이션의 코드나 구성을 업데이트해야 하는 경우 로컬 소스 코드 파일만 수정하면 됩니다. 소스 코드를 컨테이너에 마운트했기 때문에 로컬 파일의 변경 사항이 컨테이너에 실시간으로 반영됩니다.

애플리케이션을 중지하려면 다음 명령을 사용할 수 있습니다.

docker-compose down

이 명령은 모든 컨테이너를 중지하고 삭제합니다.

Docker Compose는 기본 구성 외에도 컨테이너 네트워크 연결, 환경 변수 설정, 확장 등 다양한 기능을 제공합니다.

요약하자면, 다중 컨테이너 PHP 애플리케이션의 패키징 및 배포에 Docker Compose를 사용하는 것은 빠르고 강력한 방법입니다. docker-compose.yaml 파일을 정의함으로써 복잡한 애플리케이션을 쉽게 구축, 배포 및 확장할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 Docker Compose를 사용하여 다중 컨테이너 PHP 애플리케이션을 패키지하고 배포하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.