Docker 安装 Nginx
Docker 官网:https://docs.docker.com/
Docker Hub 镜像仓库:https://hub.docker.com/
拉取 nginx:latest 镜像
docker pull nginx
为 nginx 添加挂载卷
一会准备把 nginx.conf 配置文件、 conf.d 目录、html 默认静态文件、以及 nginx 日志目录 挂载到宿主机。挂载数据卷的时候并不会创建原本的配置文件,因此我准备先运行 nginx 容器,然后把这些配置文件拷贝一份到宿主机挂载目录。
创建 nginx 容器挂载目录
创建准备让 nginx 容器挂载的 conf 和 log 目录。
mkdir -p /usr/local/workspace/nginx/{conf,log}
运行 nginx 容器
docker run -d --name nginx nginx
拷贝 nginx 相关配置到宿主机
# 拷贝 nginx.conf 到宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/workspace/nginx/conf
# 拷贝 conf.d 目录到宿主机
docker cp nginx:/etc/nginx/conf.d /usr/local/workspace/nginx/conf
# 拷贝 默认html静态文件 目录到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/workspace/nginx
上面所列出来的相关路径,我是通过 docker exec 进入容器里面去查看对应配置文件所了解。我目前 nginx:latest 版本对应的是 nginx/1.21.6 。
删除 nginx 容器
docker rm -f nginx
添加挂载卷并运行 nginx 容器
docker run \
--name nginx \
-d -p 80:80 \
-v /usr/local/workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/workspace/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/workspace/nginx/log:/var/log/nginx \
-v /usr/local/workspace/nginx/html:/usr/share/nginx/html \
nginx
今后要修改 nginx 容器配置就直接修改宿主机下的配置文件就可以了。
进入 nginx 容器执行命令
docker exec -it nginx /bin/bash
# 查看 nginx 版本信息
nginx -v
设置 nginx 容器自启动
docker update --restart=always nginx
nginx 容器访问宿主机端口
在配置反向代理的时候,需要访问宿主机的端口,可通过docker的宿主机虚拟IP进行访问。
ifconfig
docker0 的 ip 就是宿主机的虚拟ip。一般宿主机IP地址是:172.17.0.1,反向代理设置的时候,可通过宿主机ip代替 127.0.0.1 。
