Docker를 사용하여 PHP 애플리케이션을 배포하고 관리하는 방법
Docker를 사용하여 PHP 애플리케이션을 배포하고 관리하는 방법
소개:
오늘날의 클라우드 컴퓨팅 시대에 컨테이너화 기술은 점점 더 대중화되고 있습니다. 그중 선두주자인 Docker는 이미 대부분의 개발자가 선택한 컨테이너화 솔루션이 되었습니다. 이 문서에서는 Docker를 사용하여 PHP 애플리케이션을 배포하고 관리하여 애플리케이션을 보다 효율적으로 개발하고 제공하는 방법을 소개합니다.
1. Docker 및 Docker Compose 설치
먼저 로컬 환경에 Docker를 설치해야 합니다. 운영 체제 버전에 따른 공식 문서에 따라 설치하십시오: https://docs.docker.com/install/
설치가 완료된 후 Docker Compose도 설치해야 합니다. 이는 여러 애플리케이션을 포함하는 애플리케이션을 관리하는 데 도움이 됩니다. 컨테이너. 마찬가지로 공식 문서(https://docs.docker.com/compose/install/
)에서 운영 체제에 대한 설치 지침을 찾을 수 있습니다. 2. Docker 이미지 생성
PHP 애플리케이션을 배포하기 전에 필수 환경이 포함된 Docker 이미지입니다. 이를 위해서는 이미지 빌드 단계를 정의하는 Dockerfile
이라는 파일을 생성해야 합니다. Dockerfile
的文件,在其中定义构建镜像的步骤。
下面是一个示例的Dockerfile
:
# 使用一个基础的PHP镜像 FROM php:7.4-apache # 安装所需的PHP扩展 RUN docker-php-ext-install pdo_mysql # 将应用程序复制到工作目录 COPY . /var/www/html # 设置Apache配置文件 COPY apache.conf /etc/apache2/sites-available/000-default.conf # 设置Apache的DocumentRoot RUN sed -ri -e 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/000-default.conf # 设置Apache访问权限 RUN chown -R www-data:www-data /var/www/html RUN a2enmod rewrite # 设置环境变量 ENV APACHE_DOCUMENT_ROOT=/var/www/html/public # 暴露容器的端口 EXPOSE 80 # 启动Apache服务器 CMD ["apache2-foreground"]
以上的Dockerfile
使用php:7.4-apache
作为基础镜像,安装了pdo_mysql
扩展,将应用程序复制到容器的指定目录中,设置Apache配置文件,启用了rewrite模块,并将DocumentRoot设置为应用程序的public
目录。
三、编写Docker Compose文件
接下来,我们需要编写一个Docker Compose文件,该文件用于定义和管理多个容器的运行和交互。
下面是一个示例的docker-compose.yml
文件:
version: '3' services: app: build: context: . dockerfile: Dockerfile ports: - 8080:80 volumes: - .:/var/www/html depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword
以上的docker-compose.yml
文件定义了两个服务:app
和db
。app
服务使用了我们之前创建的Docker镜像,将容器的80端口映射到本地的8080端口,并将当前目录挂载到容器的/var/www/html
目录下。db
服务使用了MySQL的官方镜像,设置了数据库的root密码、数据库名和用户密码。
四、启动容器
在命令行中,进入项目的根目录,执行以下命令来启动容器:
$ docker-compose up -d
其中,-d
参数表示在后台启动容器。
五、访问应用
在容器启动后,我们可以通过浏览器访问http://localhost:8080
来查看应用程序。如果一切正常,您将看到您的PHP应用程序。
六、管理容器
使用Docker Compose,我们可以轻松管理和操作多个容器。
以下是一些常用的命令:
- 启动容器:
docker-compose up -d
- 关闭容器:
docker-compose down
- 查看容器状态:
docker-compose ps
- 查看容器日志:
docker-compose logs
다음은
Dockerfile
의 예입니다. 위의 Dockerfile
은 php:7.4-apache
를 기본 이미지로 사용합니다. >pdo_mysql 확장을 설치하고, 애플리케이션을 컨테이너의 지정된 디렉터리에 복사하고, Apache 구성 파일을 설정하고, 다시 쓰기 모듈을 활성화하고, DocumentRoot를 애플리케이션의 public
디렉터리로 설정합니다.
docker-compose.yml
파일의 예입니다. 🎜rrreee🎜위의 docker-compose.yml
파일은 두 가지 서비스를 정의합니다: app /code > 및 <code>db
. app
서비스는 이전에 생성한 Docker 이미지를 사용하고, 컨테이너의 포트 80을 로컬 포트 8080에 매핑하고, 현재 디렉터리를 컨테이너의 /var/www/html code>에 마운트합니다. 예배 규칙서. <code>db
서비스는 MySQL의 공식 이미지를 사용하고 데이터베이스의 루트 비밀번호, 데이터베이스 이름 및 사용자 비밀번호를 설정합니다. 🎜🎜4. 컨테이너 시작🎜명령줄에 프로젝트의 루트 디렉터리를 입력하고 다음 명령을 실행하여 컨테이너를 시작합니다. 🎜rrreee🎜그 중 -d
매개변수는 시작을 나타냅니다. 백그라운드에서 컨테이너입니다. 🎜🎜5. 애플리케이션 액세스🎜컨테이너가 시작된 후 브라우저를 통해 http://localhost:8080
에 액세스하면 애플리케이션을 볼 수 있습니다. 모든 것이 정상이면 PHP 애플리케이션이 표시됩니다. 🎜🎜6. 컨테이너 관리🎜Docker Compose를 사용하면 여러 컨테이너를 쉽게 관리하고 운영할 수 있습니다. 🎜🎜다음은 일반적으로 사용되는 명령입니다. 🎜- 컨테이너 시작:
docker-compose up -d
🎜 - 컨테이너 닫기:
docker-compose down 🎜<li>컨테이너 상태 보기: <code>docker-compose ps
🎜 - 컨테이너 로그 보기:
docker-compose 로그
🎜🎜🎜VII 사용 Docker와 Docker Compose를 사용하면 PHP 애플리케이션을 보다 편리하게 배포하고 관리할 수 있습니다. 애플리케이션과 환경을 컨테이너로 패키징함으로써 애플리케이션이 다양한 환경에서 일관되게 실행되고 확장 및 제공이 더 쉬워지도록 보장합니다. 이 기사가 Docker를 사용하여 PHP 애플리케이션을 배포하고 관리하는 데 대한 기본 지식과 지침을 제공할 수 있기를 바랍니다. Docker를 사용하여 애플리케이션을 개발하고 제공하는 데 성공하길 바랍니다. 🎜
위 내용은 Docker를 사용하여 PHP 애플리케이션을 배포하고 관리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

도커 컨테이너를 종료하는 4 가지 명령 사용 Docker Kill & lt; Container_name & gt; 호스트 터미널의 명령 (힘 출구)

Docker 컨테이너를 다시 시작하는 방법 : 컨테이너 ID (Docker PS)를 가져옵니다. 컨테이너 중지 (Docker Stop & lt; container_id & gt;); 컨테이너를 시작하십시오 (Docker start & lt; container_id & gt;); 재시작이 성공했는지 확인하십시오 (Docker PS). 기타 방법 : Docker Compose (Docker-Compose Restart) 또는 Docker API (Docker 문서 참조).

Docker의 외부 호스트에 파일을 복사하는 방법 : Docker CP 명령 사용 : Docker CP 실행 [옵션] & lt; 컨테이너 경로 & gt; & lt; 호스트 경로 & gt;. 데이터 볼륨 사용 : 호스트에서 디렉토리를 만들고 -V 매개 변수를 사용하여 양방향 파일 동기화를 달성하기 위해 컨테이너를 만들 때 컨테이너에 디렉토리를 장착하십시오.

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

도커 프로세스보기 방법 : 1. Docker CLI 명령 : Docker PS; 2. Systemd Cli 명령 : SystemCTL 상태 Docker; 3. Docker Compose CLI 명령 : Docker-Compose PS; 4. 프로세스 탐색기 (Windows); 5. /Proc Directory (Linux).

실패한 Docker 이미지 빌드에 대한 문제 해결 단계 : Dockerfile 구문 및 종속성 버전을 확인하십시오. 빌드 컨텍스트에 필요한 소스 코드 및 종속성이 포함되어 있는지 확인하십시오. 오류 세부 사항에 대한 빌드 로그를보십시오. -표적 옵션을 사용하여 계층 적 단계를 구축하여 실패 지점을 식별하십시오. 최신 버전의 Docker Engine을 사용하십시오. -t [image-name] : 디버그 모드로 이미지를 빌드하여 문제를 디버깅하십시오. 디스크 공간을 확인하고 충분한 지 확인하십시오. 빌드 프로세스에 대한 간섭을 방지하기 위해 Selinux를 비활성화하십시오. 커뮤니티 플랫폼에 도움을 요청하고 Dockerfiles를 제공하며보다 구체적인 제안을 위해 로그 설명을 구축하십시오.

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.
