首页 >运维 >Docker >怎么用docker部署web程序

怎么用docker部署web程序

PHPz
PHPz原创
2023-04-04 10:41:392642浏览

Docker作为一个轻量级的容器技术,在应用部署和管理方面有着独特的优势。利用Docker,我们可以将应用程序与其所需的运行环境打包成一个可移植的容器,实现快速、灵活的部署和管理。

本文将介绍如何使用Docker部署Web程序,以Nginx+PHP-FPM为例。

一、安装Docker

首先,我们需要在本机上安装Docker。具体安装方式可见[Docker官网](https://docs.docker.com/engine/installation/)。

安装完成后,可以用以下命令查看Docker版本:

docker version

二、准备Web应用程序

本文以一个最简单的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://localhost来访问Web应用程序。

六、总结

通过以上步骤,我们成功地使用Docker部署了一个简单的Web应用程序。利用Docker可以有效地减少复杂的配置过程,让部署和管理变得更加容易和自动化。随着容器技术的不断发展和完善,Docker必将成为未来应用部署和管理的主流工具之一。

以上是怎么用docker部署web程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn