站長資訊網
        最全最豐富的資訊網站

        怎樣利用Dockerfile文件部署PHP項目

        本篇文章主要給大家介紹了關于利用Dockerfile文件部署PHP項目的相關知識,環境部署一直是一個很大的問題,無論是開發環境還是生產環境,但是Docker將開發環境和生產環境以輕量級方式打包,提供了一致的環境,下面一起來看一下,希望對大家有幫助。

        怎樣利用Dockerfile文件部署PHP項目

        (推薦教程:PHP視頻教程)

        一、當前項目結構

        /project_name
        |– /dist #— 項目編譯后輸出的目錄
        |– /config #— 配置文件目錄
        |—|
        |—|– Dockerfile #— Dockerfile文件
        |—|– nginx.conf #— nginx配置文件

        nginx.conf文件

        怎樣利用Dockerfile文件部署PHP項目

        怎樣利用Dockerfile文件部署PHP項目

        二、創建Dockerfile文件

        # 從ubuntu鏡像中構建應用 FROM ubuntu:latest   # 設置鏡像的制作者 MAINTAINER congjiang   # 安裝nginx + php-fpm7.4    RUN apt-get update && apt-get upgrade && apt-get install -y nginx php7.4-fpm vim   # 上一條命令安裝nginx和fpm # nginx 默認安裝路徑 /etc/nginx/ # php-fpm 默認安裝路徑 /etc/php/fpm/ # nginx配置文件存放目錄 /etc/nginx/conf.d/  # nginx默認項目路徑 /var/www/html/   # 在上傳目錄之前,可以先刪除舊項目代碼 # RUN ["rm", "-rf", "/var/www/project_name/"]   # 項目文件上傳, 把當前目錄下的所有文件上傳到/var/www/project_name目錄下 COPY ./dist/ /var/www/project_name/   # 把當前項目的nginx.conf配置文件上傳到/etc/nginx/conf.d/目錄下 COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf   # 容器運行時啟動應用 # php-fpm7.4 -D : 啟動fpm并在后臺運行 # nginx -g 'daemon off;' : 啟動nginx, 前臺執行, 并保持進程常駐, 避免docker容器啟動后就自動關閉了 CMD php-fpm7.4 -D && nginx -g 'daemon off;'

        三、生成鏡像文件

        # 在項目project_name目錄下執行命令   docker build -f config/Dockerfile -t myproject:latest .   # 注:  最后的參數表示路徑,  . : 表示當前目錄下 # -f 指定Dockerfile文件所在目錄, 如果是相對路徑,則從當前目錄下查找 # -t 重新指定鏡像的名稱和標簽  <name>:<tag>

        四、使用鏡像文件,并啟動容器

        # 啟動鏡像   docker run -itd -p 80:8080 myproject:latest   # --name <name> 為啟動的容器指定名稱,不指定會默認隨機一個名稱 # -p 訪問的端口:鏡像內程序的端口 # -d 表示當前容器在后臺運行 # -it 指定要啟動的鏡像名稱和標簽 <name>:<tag> # -v 本地路徑:鏡像內的路徑   可以將本地路徑和容器內的路徑映射,可以即時修改文件即時生效,方便測試 # -v 命令可以有多條 # --rm 當前容器退出后將自動刪除 # eg:  -v E:/logs/:/var/logs/nginx/   把nginx的日志文件映射到本地

        注: nginx + php-fpm 環境搭建到這里已經完成。

        啟動運行容器后, 打開本地瀏覽器: http://localhost/ 就可以訪問了

        五、連接已啟動的鏡像容器

        # 查看正在運行的容器   docker ps   # CONTAINER ID    IMAGE  ... # 01f82e69c455    myproject  ...   docker exec -it 01f82e69c455 /bin/bash   # -it 需要連接的容器的CONTAINER ID # /bin/bash 當前參數必須的

        六、 構建項目出現的問題

        • 每次重新構建項目,都會新創建一個鏡像文件

        • 如果構建鏡像文件時,指定的name和標簽與原來的鏡像一樣,則原來的鏡像不會刪除,會被更名為<none>:<none> 的鏡像文件

        # 已找到相關命令解決上面兩個問題, 在創建相同名稱的新鏡像文件時,避免舊鏡像殘留 # 可以先刪除舊鏡像文件   docker rmi -f <name>:<tag>   # 當前命令可以強制刪除指定名稱和tag的鏡像文件

        七、刪除容器、刪除鏡像文件

        # 刪除運行的容器 docker rm -f <name> # -f 強制刪除,如果容器正在運行也會被刪除 # -v 刪除當前容器掛載的數據卷   # 刪除所有沒有運行的容器 docker rm $(docker ps -a -q)   # 刪除本地鏡像文件 docker rmi -f <name>:<tag>

        八、鏡像倉庫地址

        1、ubuntu + nginx + php-fpm7.4 版本的運行環境

        命令拉取鏡像:

        docker pull freedomx20/nginx-fpm7.4:1.0

        docker鏡像倉庫:

        Docker Hub (ubuntu + nginx + php-fpm7.4 環境)

        https://hub.docker.com/r/freedomx20/nginx-fpm7.4

        (推薦教程:PHP視頻教程)

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人无码精品一区在线观看 | 看99视频日韩精品| 久久久久亚洲精品无码蜜桃| 国产精品免费视频观看拍拍| 国产成人精品免费视频网页大全 | 国产精品一级片| 日产精品99久久久久久| 久久人搡人人玩人妻精品首页| 2021最新国产精品一区| 99视频在线观看精品| 久久精品国产亚洲AV无码偷窥 | 精品四虎免费观看国产高清午夜| 久久精品国产亚洲av麻豆小说| 亚洲精品A在线观看| 久久久WWW成人免费精品| 国产精品网址在线观看你懂的| 色综合久久综精品| 久久精品国产一区| 久久亚洲国产欧洲精品一| 久久99国产精品久久| 国产精品久久久久9999| 成人午夜精品网站在线观看| 国产精品白丝AV网站| 精品久久久久久无码中文字幕一区| 久久精品中文字幕无码绿巨人| 四虎国产精品永久在线观看| 精品少妇人妻av无码久久| 久久精品国产亚洲77777| 精品人妻无码一区二区色欲产成人| 久久综合久久自在自线精品自| 久久亚洲精品中文字幕| 久久99国产精品尤物| 国产精品自在线拍国产| 国产精品国产精品国产专区不卡| 国产福利91精品一区二区三区| 国产精品宾馆在线精品酒店| 精品久久久久久久| 3级黄性日本午夜精品| 国产精品视频色视频| 久久青青草原精品国产软件 | 精品少妇一区二区三区在线|