一、Dockerfile构建nginx
注意:在dockerfile中安装时最好是在宿主机上先安装一遍,若是没有问题则在dockerfile中进行安装。
1. 新建一个test_2目录,将nginx压缩包下载到该路径下然后进行解压
2. 新建一个test_2目录,将nginx压缩包下载到该路径下然后进行解压
1. dockerfile
FROM centos:7
ADD nginx-1.16.0.tar.gz /usr/local
COPY nginx_install.sh /usr/local
RUN sh /usr/local/nginx_install.sh
EXPOSE 80
2. 安装nginx的shell脚本
#!/bin/bash //指明 解释器
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel
cd /usr/local/nginx-1.16.0
./configure --prefix=/usr/local/nginx && make && make install //指明安装路径并进行安装
-
安装nginx的依赖包
-
进入到nginx目录
-
指明安装路径并进行安装(一定要在安装包下进行)
-
在home目录下新建一个脚本文件
-
将home目录下的脚本文件移动到/root/test_2目录下
-
将dockerfile文件写入
3. 制作Nginx镜像:
docker build -t mycentos:nginx .
4. Nginx镜像启动注意
4.1 (后台启动)在容器里nginx是以daemon方式启动,退出容器时,nginx程序也会随着停止:
/usr/local/nginx/sbin/nginx
容器太过繁忙,关闭几个镜像
- 启动一下
如果启动不成功检查一下防火墙是否关闭,若没有关闭将防火墙关闭。 - 关闭nginx
4.2 使用前台方式永久运行(推荐):
/usr/local/nginx/sbin/nginx -g "daemon off;"
5. 检查验证:
在执行该条命令之前一定要以前台的方式启动nginx。
docker run -itd -p 80:80 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
-
报错:
分析:由于之前的脚本文件的目录错误
将该路径改为cd /usr/local/nginx-1.16.0
-
删除之前的镜像,重新构建一下。
-
访问一下nginx
成功访问到容器内部的nginx -
停掉该镜像之后再次访问
会发现访问失败!!!
需要注意的问题
- 注意端口是否被占用,如果发现端口被占用则关闭宿主机的nginx,或者将端口号更改一下。
- 注意脚本的路径不要写错