您的位置:首页 > 技术中心 > 运维 >

怎么用docker部署web程序

时间:2023-04-07 13:48

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

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

一、安装Docker

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

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

docker version

二、准备Web应用程序

本文以一个最简单的PHP程序为例:在本机任意目录下新建一个index.php文件,内容如下:

<?phpphpinfo();?>

三、准备Docker文件

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

# 基础镜像FROM php:7.0-fpm# 将本地文件夹挂载到当前容器RUN mkdir -p /var/www/htmlWORKDIR /var/www/htmlCOPY index.php /var/www/html# 安装nginxRUN apt-get updateRUN 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程序的详细内容,更多请关注Gxl网其它相关文章!

热门排行

今日推荐

热门手游