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的更多相关文章

  1. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  2. Docker Compose 部署Nginx服务实现负载均衡

    Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...

  3. docker - compose 部署 Nginx

    主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法.docker 中部署一个服务,有三种方法,分别是 docker run.Dockerfile.docker-compose . 下 ...

  4. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  5. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  6. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

  7. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...

  8. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  9. 在Windows Server 2019通过Docker Compose部署Asp.Net Core

    一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...

  10. 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

随机推荐

  1. Codeforces Round 926 (Div. 2)(A~D)

    目录 A B C D A 输出最大值减最小值,或者排序算一下答案 #include <bits/stdc++.h> #define int long long #define rep(i, ...

  2. ThinkPHP 3.2.3

    说明手册 https://www.kancloud.cn/manual/thinkphp/1706 下载地址 https://gitee.com/liu21st/thinkphp32 thinkPHP ...

  3. Maven项目不同jar包相同类名的引用问题

    本文简单记录下一个小问题 问题描述: 在一个Maven项目中,引用了两个jar包,其中两个jar包中,都含有个相同类(包名也相同),这个时候代码里使用该类,出现引用失败的问题 如下图所示,展开两个ja ...

  4. Kotlin学习快速入门(10)—— 重载运算符使用

    原文:Kotlin学习快速入门(10)-- 重载运算符使用 - Stars-One的杂货小窝 Kotlin中提供了基础的运算符,但是只是针对基础的数据类型,如Int,Double等 如果我们想让两个对 ...

  5. 专访冠军考拉ok|“新人问我学Blender能找到工作吗,我回复不能”

    "新锐先锋,玩转未来"--首届实时染3D动画创作大赛由瑞云科技主办,英伟达.青椒云.3DCAT实时渲染云协办,戴尔科技集团.Reallusion.英迈.万生华态.D5渲染器.中视典 ...

  6. 记录--你敢信?比 setTimeout 还快 80 倍的定时器

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 起因 很多人都知道,setTimeout是有最小延迟时间的,根据MDN 文档 setTimeout:实际延时比设定值更久的原因:最小延迟时 ...

  7. 记录--使用 JS 实现基本的截图功能

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 思路分析 在开始动手之前,分析一下整个功能的实现过程: 根据图片大小创建 canvas1 画布,并将原图片直接定位在 canvas1 上: ...

  8. 《Go程序设计语言》学习笔记之函数变量和匿名函数

    <Go程序设计语言>学习笔记之函数变量和匿名函数 一. 环境 Centos8.5, go1.17.5 linux/amd64 二. 函数变量 1. 概念 像其它的值一样,函数变量也有类型, ...

  9. 【GD32L233C-START】DAC输出(正弦波、锯齿波、方波)

    [GD32L233C-START]DAC输出(正弦波.锯齿波.方波) 1.介绍GD32L233C采用的是一款M23的内核.这个芯片据说功耗非常的低,低到什么程度呢?等后面我们再进行测试,今天我们主要来 ...

  10. vscode中Vetur插件关闭组件自动导入路径

    vscode配置项中加入 "vetur.completion.autoImport": false, 或者,将图中4处勾去掉即可