0

0

怎样利用Dockerfile文件部署PHP项目

WBOY

WBOY

发布时间:2022-07-25 17:48:43

|

4774人浏览过

|

来源于脚本之家

转载

本篇文章主要给大家介绍了关于利用dockerfile文件部署php项目的相关知识,环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是docker将开发环境和生产环境以轻量级方式打包,提供了一致的环境,下面一起来看一下,希望对大家有帮助。

怎样利用Dockerfile文件部署PHP项目

(推荐教程:PHP视频教程

一、当前项目结构

/project_name|-- /dist          #--- 项目编译后输出的目录|-- /config        #--- 配置文件目录|---||---|-- Dockerfile #--- Dockerfile文件|---|-- nginx.conf #--- nginx配置文件

 nginx.conf文件

二、创建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 重新指定镜像的名称和标签  :

四、使用镜像文件,并启动容器

# 启动镜像
 
docker run -itd -p 80:8080 myproject:latest
 
# --name  为启动的容器指定名称,不指定会默认随机一个名称
# -p 访问的端口:镜像内程序的端口
# -d 表示当前容器在后台运行
# -it 指定要启动的镜像名称和标签 :
# -v 本地路径:镜像内的路径   可以将本地路径和容器内的路径映射,可以即时修改文件即时生效,方便测试
# -v 命令可以有多条
# --rm 当前容器退出后将自动删除
# eg:  -v E:/logs/:/var/logs/nginx/   把nginx的日志文件映射到本地

注: nginx + php-fpm 环境搭建到这里已经完成。

立即学习PHP免费学习笔记(深入)”;

启动运行容器后, 打开本地浏览器:  http://localhost/  就可以访问了

五、连接已启动的镜像容器

# 查看正在运行的容器
 
docker ps
 
# CONTAINER ID    IMAGE  ...
# 01f82e69c455    myproject  ...
 
docker exec -it 01f82e69c455 /bin/bash
 
# -it 需要连接的容器的CONTAINER ID
# /bin/bash 当前参数必须的

六、 构建项目出现的问题

  •         每次重新构建项目,都会新创建一个镜像文件

  •         如果构建镜像文件时,指定的name和标签与原来的镜像一样,则原来的镜像不会删除,会被更名为: 的镜像文件

    灵光
    灵光

    蚂蚁集团推出的全模态AI助手

    下载
# 已找到相关命令解决上面两个问题, 在创建相同名称的新镜像文件时,避免旧镜像残留
# 可以先删除旧镜像文件
 
docker rmi -f :  
# 当前命令可以强制删除指定名称和tag的镜像文件

七、删除容器、删除镜像文件

# 删除运行的容器
docker rm -f 
# -f 强制删除,如果容器正在运行也会被删除
# -v 删除当前容器挂载的数据卷
 
# 删除所有没有运行的容器
docker rm $(docker ps -a -q)
 
# 删除本地镜像文件
docker rmi -f :

八、镜像仓库地址  

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视频教程

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

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

相关专题

更多
Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

8

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

51

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

27

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

354

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

108

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

15

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

8

2026.01.21

无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证报考 uom民用无人机综合管理平台官网

无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

43

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 9.6万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号