centos制作docker nginx镜像

  1. 准备一个centos镜像,没有可以使用docker pull centos 命令拉取

  2. docker images centos 查看 镜像是否拉取成功

  3. 基于此centos镜像创建容器docker run -itd --name mynginx centos /bin/bash 名字为mynginx,docker ps -a 查看容器是否创建成功,STATUS为UP启动状态,说明容器创建成功。centos制作docker nginx镜像centos制作docker nginx镜像

  4. docker exec -it mynginx /bin/bash 进入mynginx容器 cd /usr/local 目录centos制作docker nginx镜像

  5. 安装gcc: yum -y install gcc
    安装pcre、pcre-devel : yum install -y pcre pcre-devel
    安装zlib : yum install -y zlib zlib-devel
    安装openssl:yum install -y openssl openssl-devel
    执行nginx下载命令wget http://nginx.org/download/nginx-1.9.9.tar.gz 若提示bash: wget: command not found
    先安装wget,运行安装命令 yum -y install wget
    centos制作docker nginx镜像
    安装nginx成功,解压 tar -zxvf nginx-1.9.9.tar.gz

  6. 进入cd /usr/local/nginx-1.9.9/
    执行三个命令
    ./configure
    make
    make install
    若提示bash: make: 网上搜一下安装命令即可
    make 过程中提示错误error: this statement may fall through [-Werror=implicit-fallthrough=]
    和src/os/unix/ngx_user.c:36:7: error: ‘struct crypt_data’ has no member named ‘current_salt’
    cd.current_salt[0] = ~salt[0];

    解决办法
    vim vim src/os/unix/ngx_user.c 注释此行
    centos制作docker nginx镜像
    重新运行make 命令 加后缀 make CFLAGS=’-Wno-implicit-fallthrough’

  7. 提交快照镜像docker commit mynginx nginxcentos制作docker nginx镜像

  8. 依赖nginx生成nginx_agent容器docker run -itd --name nginx_agent -p 80:80 nginx /bin/bash

  9. 进入nginx_agent容器 docker exec -it nginx_agent /bin/bash 切换到/usr/local/nginx/sbin/ 运行./nginx 启动服务。centos制作docker nginx镜像

  10. 新开一个ssh窗口 连接到宿主机,docker inspect nginx_agent 查看容器网卡信息
    centos制作docker nginx镜像
    此处为容器内网ipv4地址,可以在宿主机运行curl 172.17.0.6:80 测试nginx
    宿主机内网:80或外网ip:80 也可以访问到
    容器ip访问:centos制作docker nginx镜像宿主机内网IP访问:
    centos制作docker nginx镜像外网访问:抱歉ip不能暴露
    centos制作docker nginx镜像

  11. 到此整个制作docker nginx镜像过程就结束了。关于nginx反向代理大家可以去网站找相关资料,进入nginx_agent容器内进行配置即可,和centos同样的操作