Docker compose 部署 nginx+php
Docker compose 部署 nginx+php
拉取Docker镜像
docker pull nginx:1.21.6
docker pull php:7.4.28-fpm
创建docker-compose 目录
在home目录下创建docker-nginx
mkdir /home/docker-nginx #创建目录
cd /home/docker-nginx #进入目录
拷贝配置文件到宿主机
#拷贝 nginx的配置文
docker run -d --name nginx nginx
docker cp nginxtest:/etc/nginx ./
docker cp nginxtest:/var/log ./
docker rm -f nginx
拷贝 php的配置文件
docker run -d --name php php:7.4.28-fpm
docker cp phptest:/usr/local/etc/php ./
docker rm -f php
更改配置文件
配置内容参见:https://blog.csdn.net/qq_43534481/article/details/124916254?spm=1001.2014.3001.5501
配置php.ini
cd /home/docker-nginx/php #进入php目录
mv php.ini-development php.ini #重命名php.ini-development为php.ini
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" php.ini #替换字符串;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0
配置default.conf
cd /home/docker-nginx/nginx/conf.d #进入目录
在default.conf的server块底部添加如下代码
location ~ \.php$ {
root html;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name;
include fastcgi_params;
}
示例如下注意缩进

创建web根目录
mkdir /home/docker-nginx/www #创建目录
echo '<script>alert('installation complete')</script>' > index.html #创建index.html文件并写入内容
echo '<?php phpinfo();?>' > index.php #创建index.php文件并写入内容
编写yaml文件
在 /home/docker-nginx目录下创建一个docker-compose.yaml 文件
touch /home/docker-nginx/docker-compose.yaml #创建文件
将以下内容写入docker-compose.yaml
version: "3"
services:
nginx:
image: nginx:1.21.6
container_name: "vps-nginx"
restart: always
ports:
- "80:80"
- "443:443"
depends_on:
- "php"
volumes:
- "/home/docker-nginx/nginx:/etc/nginx"
- "/home/docker-nginx/log:/var/log"
- "/home/docker-nginx/www:/home/www"
networks:
- net-app
php:
image: php:7.4.28-fpm
container_name: "vps-php"
restart: always
ports:
- "9000:9000"
volumes:
- "/home/docker-nginx/www:/home/www"
- "/home/docker-nginx/php:/usr/local/etc/php"
networks:
- net-app
networks:
net-app:
环境上线
docker-compose up -d
验证结果
访问host首页弹窗访问host/index.php显示phpinfo界面即为成功


Docker compose 部署 nginx+php的更多相关文章
- Docker Compose部署 nginx代理Tomcat集群
一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...
- Docker Compose 部署Nginx服务实现负载均衡
Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...
- docker - compose 部署 Nginx
主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法.docker 中部署一个服务,有三种方法,分别是 docker run.Dockerfile.docker-compose . 下 ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
随机推荐
- ie7bug,一个块级元素或者一个行内元素里面有个子元素设置向右边浮动,在IE7会出现元素下掉现象!
元素包含结构如下: <h1>testing<span>综合评级:<em></em></span></h1> CSS,如下 h1{ ...
- ASP.NET Core 移除已注册的过滤器
背景 ABP vNext 默认对异常响应进行了处理,现在某个项目需要自定义异常响应结果. 问题 在 ABP vNext 的 MVC 模块当中,可以看到是通过 AddService(typeof(Abp ...
- postgreSql最佳配置详解(connection 申请、回收策略)
一.引子 合理配置一个应用的数据库参数,使其运行良好,这很重要.本文以某务中台的生产环境为例,从Apollo上拔下来一套配置,分析是否合理. 二.MybatisPlus配置 由于我们使用Apollo配 ...
- 接入移动手机号一键登录类的封装,app应用,php服务端类的封装与调用
需求:实现手机号一键登录,由于官方只有java的demo和jar包,没有php的sdk及demo <?php/* * 手机号一键登录加解密 */class Autophone{ const A_ ...
- pdf 等所有文件通过blog强制下载函数 downloadFileFromBlobByToken
downloadFileFromBlobByToken pdf 等所有文件通过blog强制下载函数 downloadFileFromBlobByToken import { getToken } fr ...
- Linux安装Nginx详细教程
一.下载Nginx安装包 Nginx官网下载地址 根据需求选择自己需要的版本下载后上传至服务器(路径自行决定). 如果服务器有外网,可以直接在服务器上下载. wget -c https://nginx ...
- SqlServer复制和订阅(实现主从同步)
SqlServer复制和订阅 注意: 1.登录必须是服务器名称不能是ip 2.订阅服务器不需要提前创建数据库 复制 1.展开要发布的数据库节点,找到复制下的本地发布 2.右击本地发布,选择本地发布 3 ...
- 一个简单的百万并发的TCP服务器的实现。
我们紧接着上篇文章,看看我们上节课的代码有什么问题? 可以明显的看出来上节课的代码公用了一个同样的缓冲区进行读写,正常的情况下我们需要封装一个结构体,让每个对应的客户端的FD都有独立的结构进行读写还有 ...
- Spring JDBCTemplate Query方法查询
queryspringtypessqldaoemail 近日系统有一个打印采购单的功能,发现连续打印多张后,主机宕机,看了下service和dao层的实现,很繁杂,估计原因主要出在组页面资料的时候,循 ...
- shell实现简单的数组排序
c++代码 int nums[8]={1,2,1,3,4,2,5,6}; int length=8; for(int i=0;i<length;i++){ for(int j=i+1;j< ...