一、概述

在上一篇文章介绍了nginx+php-fpm,链接如下:

https://www.cnblogs.com/xiao987334176/p/12918413.html

nginx和php-fpm是2个独立的镜像,在实际环境部署过程中,发现配置比较麻烦,排错比较耗费实际。

因此,需要将nginx和php-fpm 这2个镜像合并为一个。

二、正式操作

目录结构

新建目录/opt/nginx_php,目录结构如下:

./
├── default
├── dockerfile
├── README.md
└── run.sh

default

server {listen 80;server_name localhost;root /var/www/html;index index.html index.htm index.nginx-debian.html;location / {try_files $uri $uri/ =404;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

View Code

dockerfile

FROM crunchgeek/php-fpm:7.3-r7
ADD default /
ADD run.sh /
RUN apt-get update && \apt-get install -y nginx net-tools && \apt-get clean all && \mv /default /etc/nginx/sites-available/ && \chmod 755 /run.shEXPOSE 80
EXPOSE 9000
ENTRYPOINT ["/run.sh"]

View Code

README.md

# 说明
nginx+php-fpm# 版本说明
```bash
nginx 1.14.2
PHP 7.3.17
```# php-fpm模块说明
默认已经安装如下模块
```bash
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ds
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imagick
imap
interbase
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
newrelic
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
pdo_pgsql
pdo_sqlite
pdo_sqlsrv
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
ssh2
standard
sysvmsg
sysvsem
sysvshm
test
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
```# 构建镜像
```bash
docker build -t nginx_php:1 .
```# 运行
```bash
docker run -d -it --restart=always --name nginx_php -p 80:80 nginx_php:1
```# 说明
```bash
default 是示例nginx配置文件,可根据实际情况修改
```# phpinfo
将`test.php`
```php
<?phpphpinfo();
?>
```
拷贝到容器目录`/var/www/html`通过以下url即可访问
```bash
http://ip地址/test.php
```# 注意
phpinfo不要暴露在公网中访问,黑客知道php版本后,会通过漏洞攻击。<br/>
<br/>
Copyright (c) 2020-present, xiao You

View Code

run.sh

#!/bin/bash# 后台启动
/usr/local/sbin/php-fpm -D# 关闭后台启动,hold住进程
nginx -g 'daemon off;'

View Code

构建镜像

cd /opt/nginx_php
docker build -t nginx_php:1 .

运行

docker run -d -it --restart=always --name nginx_php -p 80:80 nginx_php:1

访问页面

http://ip地址

效果如下:

phpinfo页面

新建test.php

cd /opt/nginx_php
vi test.php

内容如下:

<?phpphpinfo();
?>

拷贝到容器中

docker cp test.php nginx_php:/var/www/html/

访问test.php

http://ip地址/test.php

效果如下:

nginx+php-fpm docker镜像合二为一相关推荐

  1. 创建支持nginx服务的docker镜像

    环境: [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-n ...

  2. docker Alpine一个只有5M小而美的Docker镜像

    docker Alpine一个只有5M小而美的Docker镜像 参考链接: Alpine 一个只有5M的Docker镜像 http://www.infoq.com/cn/news/2016/01/Al ...

  3. CentOS6 PHP5.6+Nginx Docker镜像制作

    背景 由于项目需要,今天制作了一下基于CentOS6的PHP5.6+Nginx的Docker镜像,同时也复习了一下Dockfile,解决一两个坑,实现了在一个Docker中启动多个进程的目标. Doc ...

  4. 使用Dockerfile构建Docker镜像

    目录 前言 Dockerfile的书写规则及指令使用方法 创建Dockerfile,构建运行环境 构建镜像 Dockerfile参考示例 Dockerfile最佳实践 1. 前言 Dockfile是一 ...

  5. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像

    1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...

  6. Docker学习(三)-----Docker镜像常用命令

    六.Docker镜像 镜像是Docker的三大组件之一 Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载 6.1Docker获取镜像 6.1.1查找镜像 我们可 ...

  7. Docker镜像使用

    当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地 Docker ...

  8. docker $PWD路径_深入浅出Docker 镜像

    技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作为云计算的当红明星Docker 来势汹汹,它就像一场森林大火,烧到了我们中间.因为工作的原因, ...

  9. Kubernetes学习笔记三:Docker安装,Docker使用,编写Dockerfile,制作容器镜像,上传docker镜像

    文章目录 Docker的安装 Docker的使用:docker run命令 查看本地存在的镜像:docker images命令 编写Dockerfile,制作容器镜像 docker build制作镜像 ...

  10. 【Spring boot 实战】使用Maven插件构建Docker镜像

    本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像,并上传到私有镜像仓库Docker Registry的过程. 使用Maven构建本地Docker镜像 我们以项目spr ...

最新文章

  1. springboot 项目将本地引用打进jar包
  2. 手机APP新“战场” 手机银行APP成了银行业的定时炸弹?
  3. Qt中内存泄露和半自动内存管理
  4. xml教程之约束schema
  5. 排序箭头,升序,降序简单实现
  6. keil_rtx特点
  7. c/s三层结构信息系统的三个层次_网络资讯:三层架构是什么
  8. Pandas/networkx图分析简单入门 1
  9. Mysql 存储过程基本语法
  10. numpy 中的axis轴问题
  11. js深拷贝和浅拷贝对数组的影响_浅拷贝与深拷贝(JavaScript)
  12. springcloud(八):配置中心服务化和高可用
  13. B - 好数 51Nod - 1717
  14. 【历史上的今天】12 月 20 日:苹果收购 NeXT;苏联超级计算机先驱诞生;《绝地求生》发布
  15. java am pm_【am.pm正确时间书写格式】作文写作问答 - 归教作文网
  16. 调整 Windows 11 任务栏位置
  17. 定积分存在定理与原函数存在定理
  18. SQL Server跟踪(Trace)--系统跟踪日志;从小白到大神,文章细节满满,细致到令人发指。
  19. python工程师都习惯用哪些开发工具呢
  20. css 里面写响应式布局,CSS3怎么做出响应式布局

热门文章

  1. Pytorch中torch.nn.DataParallel负载均衡问题
  2. html5动态创建canvas,[canvas]通过动态生成像素点做绚丽效果
  3. 华为服务器linux光驱名称,华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核...
  4. 课室用的电子黑板|一体手写屏哪家做的好?
  5. 2015年9月最新浏览器市场份额统计表
  6. 免Fan,国内直接访问,Instagram!文末还有…………
  7. PostgreSQL下载安装教程以及官网下载包出现的问题
  8. 裸辞计算机考研,一位工作三年,裸辞,跨考,347学姐的考研经验 - 考研 - 小木虫 - 学术 科研 互动社区...
  9. lammps案例:堆垛层错能的计算
  10. 菜鸟使用RedHat Linux9.0极品笑话