广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >怎样利用Dockerfile文件部署PHP项目
  • 826
分享到

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

php 2022-08-08 13:08:35 826人浏览 独家记忆
摘要

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

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

(推荐教程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 重新指定镜像的名称和标签  <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视频教程)

以上就是怎样利用Dockerfile文件部署PHP项目的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 怎样利用Dockerfile文件部署PHP项目

本文链接: https://www.lsjlt.com/news/33562.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎样利用Dockerfile文件部署PHP项目
    本篇文章主要给大家介绍了关于利用Dockerfile文件部署PHP项目的相关知识,环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是Docker将开发环境和生产环境以轻量级方式打包,提供了一致的环境,下面一起来看一下,希望对大家...
    99+
    2022-08-08
    php
  • 利用Dockerfile文件部署php项目的全过程
    目录一、当前项目结构二、创建Dockerfile文件三、生成镜像文件四、使用镜像文件,并启动容器五、连接已启动的镜像容器六、 构建项目出现的问题七、删除容器、删除镜像文件八、镜像仓库...
    99+
    2022-11-13
  • 怎么使用dockerfile部署springboot项目
    这篇文章主要讲解了“怎么使用dockerfile部署springboot项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用dockerfile部署springboot项目”吧!一、d...
    99+
    2023-07-06
  • 怎样远程部署php项目
    今天就跟大家聊聊有关怎样远程部署php项目,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑怎么远程部署php项目?...
    99+
    2023-06-29
  • Docker部署java项目的详细步骤(利用Dockerfile方式)
    目录前言1. 首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的linux和jar包上传进去2. 创建一个名为 Dockerfile文件3. 以上命...
    99+
    2022-11-13
    docker如何部署java项目 docker下部署java的web应用 docker搭建java环境
  • 利用Spring Boot 怎么部署一个微服务项目
    这篇文章将为大家详细讲解有关利用Spring Boot 怎么部署一个微服务项目,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如果开发过spring boot的程序,应该都知道,使用sprin...
    99+
    2023-05-31
    springboot spring boo
  • 云服务器部署node项目怎么弄出来文件
    要将一个云服务器部署到另一个云服务器上,需要在云服务器上安装相应的客户端软件。下面是一个简单的步骤,将云服务器的文件添加到目标云服务器。 在终端中打开云服务器,选择“管理”。 在“文件管理”窗口中,找到“服务器文件”选项,如下图所示。 ...
    99+
    2023-10-27
    怎么弄 服务器 文件
  • 云服务器部署node项目怎么弄出来的文件
    Node.js 使用Node.js进行node项目的部署需要下载并安装Node.js,可以使用以下命令进行安装: node_env install 安装完成后,在浏览器中输入localhost即可访问到项目所在的目录。在该目录下可...
    99+
    2023-10-28
    怎么弄 服务器 文件
  • nginx部署vue项目找不到js css文件怎么解决
    这篇文章主要介绍“nginx部署vue项目找不到js css文件怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nginx部署vue项目找不到js css文件...
    99+
    2022-10-19
  • 云服务器部署node项目怎么弄出来文件格式
    下面是一种部署node项目的方式,可以让我们更好地了解如何在云服务器上部署node项目。 首先,我们需要选择一款云服务器,并配置它的基本配置。比如,我们可以选择国内知名的阿里云云服务器,如AWS、Azure、GCP等。同时,我们还需要配置...
    99+
    2023-10-28
    文件格式 怎么弄 服务器
  • maven的spring boot项目部署到tomcat出现js文件失效怎么解决
    本篇内容主要讲解“maven的spring boot项目部署到tomcat出现js文件失效怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“maven的sp...
    99+
    2022-10-19
  • Maven Web项目怎么使用Cargo插件实现自动化部署
    这篇文章主要讲解了“Maven Web项目怎么使用Cargo插件实现自动化部署”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Maven Web项目怎么使用Cargo插件实...
    99+
    2023-07-05
  • 开发过程怎么使用Tomcat Maven插件持续快捷部署Web项目
    本篇内容介绍了“开发过程怎么使用Tomcat Maven插件持续快捷部署Web项目”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2022-10-19
  • 如何在PHP项目中利用Laravel实现一个文件下载功能
    如何在PHP项目中利用Laravel实现一个文件下载功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。download 方法可以用于生成强制让用户的浏览器下载指...
    99+
    2023-05-31
    php laravel
  • 怎么在Java项目中利用Struts将图片上传到指定文件夹
    怎么在Java项目中利用Struts将图片上传到指定文件夹?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JSP上传页面上传一定要为form加上enctype=&...
    99+
    2023-05-31
    java struts ava
  • 怎么在Java Web项目中利用Html5 FormData实现一个文件上传功能
    怎么在Java Web项目中利用Html5 FormData实现一个文件上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先html页面定义有两种:Html1<fo...
    99+
    2023-05-31
    javaweb html5 formdata
  • 怎么在Java项目中利用Servlet将图片上传到指定的文件夹中
    今天就跟大家聊聊有关怎么在Java项目中利用Servlet将图片上传到指定的文件夹中,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。步骤一:上传页面uploadphoto.jsp  需...
    99+
    2023-05-31
    java servlet ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作