centos制作docker nginx镜像
-
准备一个centos镜像,没有可以使用docker pull centos 命令拉取
-
docker images centos 查看 镜像是否拉取成功
-
基于此centos镜像创建容器docker run -itd --name mynginx centos /bin/bash 名字为mynginx,docker ps -a 查看容器是否创建成功,STATUS为UP启动状态,说明容器创建成功。
-
docker exec -it mynginx /bin/bash 进入mynginx容器 cd /usr/local 目录
-
安装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
安装nginx成功,解压 tar -zxvf nginx-1.9.9.tar.gz -
进入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 注释此行
重新运行make 命令 加后缀 make CFLAGS=’-Wno-implicit-fallthrough’ -
提交快照镜像docker commit mynginx nginx
-
依赖nginx生成nginx_agent容器docker run -itd --name nginx_agent -p 80:80 nginx /bin/bash
-
进入nginx_agent容器 docker exec -it nginx_agent /bin/bash 切换到/usr/local/nginx/sbin/ 运行./nginx 启动服务。
-
新开一个ssh窗口 连接到宿主机,docker inspect nginx_agent 查看容器网卡信息
此处为容器内网ipv4地址,可以在宿主机运行curl 172.17.0.6:80 测试nginx
宿主机内网:80或外网ip:80 也可以访问到
容器ip访问:宿主机内网IP访问:
外网访问:抱歉ip不能暴露 -
到此整个制作docker nginx镜像过程就结束了。关于nginx反向代理大家可以去网站找相关资料,进入nginx_agent容器内进行配置即可,和centos同样的操作