您的位置:首页 > 运维架构 > Docker

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: