1.安装nginx docker镜像
获取nginx官方镜像
查看镜像库
使用nginx镜像来创建nginx容器实例
run 创建容器实例
-- name 容器命名
-v 映射目录
-d 设置容器后台运行
-p 本机端口映射 将容器的80端口映射到本机的80端口
语句最后一个nginx是使用镜像的名称
创建容器成功后,启动nginx容器
访问 本机测试 127.0.0.1:80
2.将nginx关键目录映射到本机
首先在本机创建nginx的一些文件存储目录
logs: nginx日志目录
conf: nginx配置文件目录
查看nginx_my容器id
将nginx-test容器配置文件copy到本地
创建新nginx容器nginx-web并将logs,conf目录映射到本地
3.设置反向代理
进入到/root/conf/nginx.conf 添加如下即可
这样就可以用本机80端口代理本机15672端口了
测试反向代理是否可用
直接使用80访问端口
4.踩过坑
1. docker运行nginx为什么要使用 daemon off
Docker 容器启动时,默认会把容器内部第一个进程,也就是pid=1的程序,作为docker容器是否正在运行的依据,如果 docker 容器pid=1的进程挂了,那么docker容器便会直接退出。
Docker未执行自定义的CMD之前,nginx的pid是1,执行到CMD之后,nginx就在后台运行,bash或sh脚本的pid变成了1。
所以一旦执行完自定义CMD,nginx容器也就退出了。
Nginx的docker仓库仔细查看说明,其实是有说明的.
将nginx容器停止后修改配置文件出现nginx启动不起来解决方式:
2. 修改配置文件后还是没有转发端口
这个可能是修改nginx配置文件后没有重启nginx, 需要重启nginx, 也就是重启docker nginx容器就可以