我这篇文章写的不太好。我新写了一篇文章。
请移步如下链接
利用docker构建完整centos环境开发php
网上找了很多,发现基于ubuntu的php-fpm构建镜像是主流的,应该也可以用于生产环境。
可是我对ubuntu语法不熟悉,而习惯使用centos。于是艰难的找到了这个镜像,该镜像构建简单方便,且使用了构建php最主流的remi库。,让人满意。这样能始终支持最新版本的php。
额外说一句,docker的标准用法是每个docker容器只提供一个服务。
所以应该是php-fpm单独一个容器,nginx单独一个容器。本文的思路也是这样的,坚决不搞docker全家桶。
===========================================
这是原始的,名字:amazeeio/centos:7,该镜像内含了一些原作者自己的写命令,用于后续的构建,可惜不是通过Dockerfile构建的,不知具体内容,很遗憾。所以,如果用的话,只能依赖于原作者这个镜像。
这是新的,直接可用的一个基于centos的php-fpm镜像。
amazeeio/centos7-php
原作者的docker仓库地址。用于不打算自己改,直接用原作者的。
https://hub.docker.com/r/amazeeio/centos7-php/
假设想自己构建镜像,则,
git clone https://github.com/amazeeio/docker-centos7-php
cd docker-centos7-php/
git checkout 7.2
docker build -t 自己的centos7php镜像名 .
=========================================
我现在假设,直接用它的。
docker pull nginx:1.12
docker pull amazeeio/centos7-php:7.2
docker network create -d bridge php-net
创建两个容器
docker run -d --network php-net --name c_fpm -p 9000:9000 -v /var/www/html:/usr/share/nginx/html amazeeio/centos7-php:7.2
docker run -d --network php-net --name c_nginx -p 80:80 -v /var/www/html:/usr/share/nginx/html nginx:1.12
确认一下两个容器始终打开
dcoker ps -a
复制nginx容器的配置文件到docker宿主机。
docker cp c_nginx:/etc/nginx/conf.d/default.conf ./default.conf
vi default.conf
###
location ~ \.php$ {
fastcgi_pass c_fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
###
把上面这段话加入到 nginx配置。
docker cp ./default.conf c_nginx:/etc/nginx/conf.d/default.conf
docker stop c_nginx
docker start c_nginx
vi /var/www/html/1.php
<?php
phpinfo();
在最外面的宿主机,浏览器
http://192.168.99.100/1.php
显示 PHP Version 7.2.0RC2.
不喜欢那个RC2,就自己构建吧!
只需在创建两个容器那里,替换镜像名为你自己构建的镜像名即可。
分享到:
相关推荐
基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2),所构建的php5.6.40镜像应用于RHEL7-9(如AlmaLinux9.1),但因为docker的特性,适用场景是不限于此的。 # 部署docker环境 # 创建自定义网络示例 docker network...
基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2),所构建的php7.1.33镜像应用于RHEL7-9(如AlmaLinux9.1),但因为docker的特性,适用场景是不限于此的。 # 部署docker环境 # 创建自定义网络示例 docker network ...
基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2),所构建的php7.4.33镜像应用于RHEL7-9(如AlmaLinux9.1),但因为docker的特性,适用场景是不限于此的。 # 部署docker环境 # 创建自定义网络示例 docker network ...
码头应用 基于带有CentOS,PHP-FPM 5.4,SphinxSearch,Redis和Memcached的应用服务器的Docker映像
不人道的人/www 这是一个基本的 CentOS7/Apache/PHP-FPM Docker 镜像。 它可以通过在 /var/www 上安装主机卷来单独使用,但它旨在成为更复杂设置的模型。使用docker run -d -p 80:80 -v /path/to/site/files:/var/...
Dockerfile 安装php5.6镜像 FROM hub.c.163.com/netease_comb/centos:7 MAINTAINER www.source-open.com RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel ...
LNMP Docker - 在国内快速构建LNMP容器环境3分钟构建开发、测试、生产L(Alpine Linux ) + N(Nginx) + M(MariaDB) + P(PHP) Docker容器应用环境,升级信息参考。控制与控制基于PHP 7.1版本,构建完整、轻量级的PHP...
Dockerfile 安装php7.1镜像 FROM hub.c.163.com/netease_comb/centos:7 MAINTAINER www.source-open.com RUN yum install -y gcc gcc-c++ make libxml2 libxml2-devel gd gd-devel openssl openssl-devel #...
在没有用docker之前一直用vagrant配置的centos的php开发环境,但是自从有了docker之后,就不再用vagrant了。 配置自己的php镜像 首先在自己的任意一个目录下创建如下三个文件 run.sh #!/bin/bash /usr/sbin/...
码头工人 码头工人 目录结构 ./ ├── README.md ├── build.sh (构建镜像脚本) ├── push.sh (推送镜像脚本) └── fpm (docker仓库名称) ├── 7.2.10-centos7 ...docker pull vipthink/fpm:7.2.10.2-centos7