怎么用docker部署web程序

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必將成為未來應用部署和管理的主流工具之一。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享