Docker创建centos的nginx_php镜像
2017-09-21 13:35
501 查看
准备:linux 64bit,安装好docker,并启动服务
一、下载centos的docke官方r镜像
docker pull centos
二、查看并运行centos镜像,进入shell
docker images
docker run -i -t --name centos /bin/bash
三、安装php7和nginx,因为不是本文重点,详细过程请看相关文档
四、保存为新的镜像
docker commit -m “nginx-php7” centos centos/nginx-php:v1
到此,nginx+php的基础镜像已经搭建完毕,可距离完善可靠运行还有差距
五、编辑Dockerfile完善镜像
1.新建Dockerfile文件,内容如下 :
FROM centos/nginx-php:v1
# Install supervisor
RUN yum install -y python-setuptools
RUN easy_install supervisor
ADD supervisord.conf /etc/supervisord.conf
EXPOSE 80 443
CMD ["/usr/bin/supervisord"]
2.supervisord.conf 内容如下
[supervisord]
nodaemon=true
[program:nginx]
command=/usr/local/nginx/sbin/nginx
[program:php-fpm]
command=/usr/local/php/sbin/php-fpm -c /etc/php.ini -y /usr/local/php/etc/php-fpm.conf
3.运行dockerfile,生成新的镜像
docker build -t centos/nginx-php-sup:v1 .
六、测试运行
docker run -d --name nginx-php-sup -p 80:80 centos/nginx-php-sup:v1
如果运行成功docker ps -a,会看到这个进程
docker exec -it nginx-php-sup bash 可以进入这个docker的命令行
七、正式运行
1、创建几个新的目录
mkdir /data/centos-nps/{log,php.conf,data,nginx.conf} -p
其中log目录我打算把nginx的日志映射到这个目录下,php.cof目录我打算把php的配置文件映射到这个目录下,data目录我打算把网页文件映射到这个目录下,conf我打算 把nginx的配置文件映射到这个目录下
2、编辑好/data/centos-nps/php.conf(php.ini,php-fpm.conf),/data/centos-nps/nginx.conf(nginx 相关配置文件)
3、启动容器,使用命令:
docker run -d --name centos-nps -v /etc/localtime:/etc/localtime:ro --restart=always -p 8000:80 -v /data/centos-nps/log:/var/log/ -v /data/centos-nps/php.conf/php.ini:/etc/php.ini -v /data/centos-nps/php.conf/php-fpm.conf:/usr/local/php/etc/php-fpm.conf
-v /data/centos-nps/data:/home/webroot -v /data/centos-nps/nginx.conf:/usr/local/nginx/conf/ centos/nginx-php-sup:v1
4、更新docker中的项目文件,直接更新宿主机上/data/centos-nps/data/目录下的文件
5、如果要修改nginx的配置文件,直接在宿主机上的/data/centos-nps/nginx.conf目录下修改nginx.conf ;修改完成后,你可以使用下面命令:
docker exec centos-nps /usr/local/nginx/sbin/nginx -t #检查配置文件是否正确
docker exec centos-nps /usr/local/nginx/sbin/nginx -s reload #让容器里的nginx重新读取nginx配置文件
6、如果要修改php的配置文件,直接在宿主机上的/data/centos-nps/php.conf目录下修改php.ini或者修改php-fpm.conf ;修改完成后要重启容器才能生效
docker restart centos-nps
7、容器里的nginx日志输出映射到了宿主机上的/data/centos-nps/log目录下
八、将制作好的镜像push到仓库
1.登陆到dockerhub,没有账号请到官网注册
docker login
2.给镜像打tag
docker tag imageID hub账号/imageName:tag
3.将镜像push到仓库
docker push hub账号/imageName:tag
一、下载centos的docke官方r镜像
docker pull centos
二、查看并运行centos镜像,进入shell
docker images
docker run -i -t --name centos /bin/bash
三、安装php7和nginx,因为不是本文重点,详细过程请看相关文档
四、保存为新的镜像
docker commit -m “nginx-php7” centos centos/nginx-php:v1
到此,nginx+php的基础镜像已经搭建完毕,可距离完善可靠运行还有差距
五、编辑Dockerfile完善镜像
1.新建Dockerfile文件,内容如下 :
FROM centos/nginx-php:v1
# Install supervisor
RUN yum install -y python-setuptools
RUN easy_install supervisor
ADD supervisord.conf /etc/supervisord.conf
EXPOSE 80 443
CMD ["/usr/bin/supervisord"]
2.supervisord.conf 内容如下
[supervisord]
nodaemon=true
[program:nginx]
command=/usr/local/nginx/sbin/nginx
[program:php-fpm]
command=/usr/local/php/sbin/php-fpm -c /etc/php.ini -y /usr/local/php/etc/php-fpm.conf
3.运行dockerfile,生成新的镜像
docker build -t centos/nginx-php-sup:v1 .
六、测试运行
docker run -d --name nginx-php-sup -p 80:80 centos/nginx-php-sup:v1
如果运行成功docker ps -a,会看到这个进程
docker exec -it nginx-php-sup bash 可以进入这个docker的命令行
七、正式运行
1、创建几个新的目录
mkdir /data/centos-nps/{log,php.conf,data,nginx.conf} -p
其中log目录我打算把nginx的日志映射到这个目录下,php.cof目录我打算把php的配置文件映射到这个目录下,data目录我打算把网页文件映射到这个目录下,conf我打算 把nginx的配置文件映射到这个目录下
2、编辑好/data/centos-nps/php.conf(php.ini,php-fpm.conf),/data/centos-nps/nginx.conf(nginx 相关配置文件)
3、启动容器,使用命令:
docker run -d --name centos-nps -v /etc/localtime:/etc/localtime:ro --restart=always -p 8000:80 -v /data/centos-nps/log:/var/log/ -v /data/centos-nps/php.conf/php.ini:/etc/php.ini -v /data/centos-nps/php.conf/php-fpm.conf:/usr/local/php/etc/php-fpm.conf
-v /data/centos-nps/data:/home/webroot -v /data/centos-nps/nginx.conf:/usr/local/nginx/conf/ centos/nginx-php-sup:v1
4、更新docker中的项目文件,直接更新宿主机上/data/centos-nps/data/目录下的文件
5、如果要修改nginx的配置文件,直接在宿主机上的/data/centos-nps/nginx.conf目录下修改nginx.conf ;修改完成后,你可以使用下面命令:
docker exec centos-nps /usr/local/nginx/sbin/nginx -t #检查配置文件是否正确
docker exec centos-nps /usr/local/nginx/sbin/nginx -s reload #让容器里的nginx重新读取nginx配置文件
6、如果要修改php的配置文件,直接在宿主机上的/data/centos-nps/php.conf目录下修改php.ini或者修改php-fpm.conf ;修改完成后要重启容器才能生效
docker restart centos-nps
7、容器里的nginx日志输出映射到了宿主机上的/data/centos-nps/log目录下
八、将制作好的镜像push到仓库
1.登陆到dockerhub,没有账号请到官网注册
docker login
2.给镜像打tag
docker tag imageID hub账号/imageName:tag
3.将镜像push到仓库
docker push hub账号/imageName:tag
相关文章推荐
- 通过Dockerfile创建nginx服务的Centos镜像
- 如何创建Nginx服务的Centos Docker镜像
- 【系列3】使用Dockerfile创建带编译安装nginx服务的Centos Docker镜像
- 【Docker构建】- Nginx创建带Nginx服务的Centos Docker镜像
- 【Dockerfile】使用Dockerfile创建带nginx服务的Centos Docker镜像
- 【系列3】使用Dockerfile创建yum安装nginx服务的Centos Docker镜像
- 创建带Nginx服务的Centos Docker镜像
- Docker实战:使用Dockerfile创建带nginx服务并支持ssh的Centos Docker镜像
- CentOS6 PHP5.6+Nginx Docker镜像制作
- Dockerfile创建带有nginx服务的Centos Docker镜像
- Docker 学习笔记1—创建一个docker nginx镜像并通过浏览器访问
- 【Dockerfile】使用Dockerfile创建带Apache服务的Centos Docker镜像
- 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- CentOS7安装Docker,运行Nginx镜像、Centos镜像
- 通过Dockerfile创建支持SSH服务的CentOS镜像
- 【系列6】使用Dockerfile创建带mysql5.6的Centos Docker镜像
- docker 启动 mysql ; nginx;php 镜像 以及链接实战
- 通过Dockerfile创建Mysql服务的Centos镜像