>운영 및 유지보수 >Docker >Docker를 사용하여 웹 프로그램을 배포하는 방법

Docker를 사용하여 웹 프로그램을 배포하는 방법

PHPz
PHPz원래의
2023-04-04 10:41:392644검색

Docker는 경량 컨테이너 기술로서 애플리케이션 배포 및 관리에 고유한 이점을 가지고 있습니다. Docker를 사용하면 애플리케이션과 필요한 실행 환경을 휴대용 컨테이너로 패키징하여 빠르고 유연한 배포 및 관리를 달성할 수 있습니다.

이 글에서는 Nginx+PHP-FPM을 예로 들어 Docker를 사용하여 웹 프로그램을 배포하는 방법을 소개합니다.

1. Docker 설치

먼저 이 머신에 Docker를 설치해야 합니다. 구체적인 설치 방법은 [Docker 공식 홈페이지](https://docs.docker.com/engine/installation/)에서 확인할 수 있습니다.

설치가 완료된 후 다음 명령을 사용하여 Docker 버전을 확인할 수 있습니다.

docker version

2. 웹 애플리케이션 준비

이 문서에서는 가장 간단한 PHP 프로그램을 예로 들어 새 인덱스를 만듭니다. 로컬 머신 파일의 임의 디렉터리에 php를 추가하면 내용은 다음과 같습니다. index.php文件,内容如下:

<?php
phpinfo();
?>

三、准备Docker文件

接下来,我们需要准备一个Dockerfile,用于构建镜像。在本机任意目录下新建一个Dockerfile文件,内容如下:

# 基础镜像
FROM php:7.0-fpm

# 将本地文件夹挂载到当前容器
RUN mkdir -p /var/www/html
WORKDIR /var/www/html
COPY index.php /var/www/html

# 安装nginx
RUN apt-get update
RUN apt-get install -y nginx

# 将nginx配置文件复制到容器中
COPY default.conf /etc/nginx/conf.d/default.conf

# 开放80端口
EXPOSE 80

# 启动nginx和php-fpm服务
CMD service nginx start && php-fpm

上述Dockerfile中含有以下几部分:

  • 基础镜像:即我们所依赖的镜像,这里选择了PHP7.0-FPM作为基础镜像;
  • 将本地文件夹挂载到当前容器:此处我们将本地的index.php文件复制到容器中;
  • 安装Nginx:在容器中安装Nginx,并将配置文件复制到容器中;
  • 开放80端口:将容器的80端口开放出来,供外部访问;
  • 启动服务:运行容器时启动nginx和php-fpm服务。

另外,我们还需要一个Nginx的配置文件。在本机任意目录下新建一个default.conf文件,内容如下:

server {
        listen 80;
        server_name localhost;
        root /var/www/html;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
                fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        }
}

上述Nginx配置文件中含有以下几部分:

  • server:指定Nginx监听的端口号和服务器名称;
  • root:指定根目录;
  • location:指定请求URL的匹配方式;
  • fastcgi_param:指定PHP程序的文件路径;
  • fastcgi_pass:指定php-fpm服务的地址。

四、构建镜像

在以上两个文件的目录下,运行如下命令来构建镜像:

docker build -t webapp .

其中,webapp是镜像名称,最后一个.代表当前目录。

构建完成后,我们可以用以下命令查看当前所有镜像:

docker images

五、运行容器

运行以下命令来启动容器:

docker run -p 80:80 -e TZ=Asia/Shanghai webapp

其中,-p参数将容器内的80端口映射到本机的80端口,-e参数指定容器的时区。

运行成功后,我们可以在浏览器中输入http://localhostrrreee

3. Docker 파일 준비

다음으로 이미지 빌드를 위한 Dockerfile을 준비해야 합니다. 다음 콘텐츠를 사용하여 이 머신의 임의 디렉터리에 새 Dockerfile 파일을 만듭니다.

rrreee

위 Dockerfile에는 다음 부분이 포함되어 있습니다. 🎜
  • 기본 이미지: 우리가 의존하는 이미지, 여기서는 PHP7.0을 선택했습니다. FPM을 기본 이미지로;
  • 로컬 폴더를 현재 컨테이너에 마운트합니다. 여기서는 로컬 index.php 파일을 컨테이너에 복사합니다.
  • 설치 Nginx: 컨테이너에 Nginx를 설치하고 구성 파일을 컨테이너에 복사합니다.
  • 포트 80 열기: 외부 액세스를 위해 컨테이너의 포트 80 열기
  • 서비스 시작: nginx 시작 컨테이너를 실행할 때 php-fpm 서비스.
🎜또한 Nginx 구성 파일도 필요합니다. 다음 내용을 포함하여 이 시스템의 임의 디렉터리에 새 default.conf 파일을 만듭니다. 🎜rrreee🎜위의 Nginx 구성 파일에는 다음 부분이 포함되어 있습니다. 🎜
  • server: Nginx가 수신하는 포트 번호와 서버 이름을 지정합니다.
  • root: 루트 디렉터리를 지정합니다.
  • 위치
  • code>: 요청 URL 일치 방법을 지정합니다.
  • fastcgi_param: PHP 프로그램의 파일 경로를 지정합니다.
  • fastcgi_pass : php-fpm 서비스 주소를 지정합니다.
🎜4. 이미지 빌드🎜🎜위 두 파일이 있는 디렉터리에서 다음 명령을 실행하여 이미지를 빌드합니다.🎜rrreee🎜그 중 webapp이 이미지 이름이고 마지막 .는 현재 디렉터리를 나타냅니다. 🎜🎜구성이 완료되면 다음 명령을 사용하여 현재 이미지를 모두 볼 수 있습니다. 🎜rrreee🎜 5. 컨테이너를 실행합니다. 🎜🎜다음 명령을 실행하여 컨테이너를 시작합니다. 🎜rrreee🎜 그중 - p 매개변수는 컨테이너에 있으며 포트 80은 로컬 시스템의 포트 80에 매핑되고 -e 매개변수는 컨테이너의 시간대를 지정합니다. 🎜🎜성공적으로 실행한 후 브라우저에 http://localhost를 입력하여 웹 애플리케이션에 액세스할 수 있습니다. 🎜🎜6. 요약🎜🎜위 단계를 통해 Docker를 사용하여 간단한 웹 애플리케이션을 성공적으로 배포했습니다. Docker를 사용하면 복잡한 구성 프로세스가 효과적으로 줄어들어 배포와 관리가 더 쉽고 자동화됩니다. 컨테이너 기술의 지속적인 개발과 개선을 통해 Docker는 미래에 애플리케이션 배포 및 관리를 위한 주류 도구 중 하나가 될 것입니다. 🎜

위 내용은 Docker를 사용하여 웹 프로그램을 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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