Docker一站式配置Nginx【图文教程】
1、拉去Nginx镜像
docker pull nginx
[root@VM-12-11-centos /]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e5ae68f74026: Pull complete
21e0df283cd6: Pull complete
ed835de16acd: Pull complete
881ff011f1c9: Pull complete
77700c52c969: Pull complete
44be98c0fab6: Pull complete
Digest: sha256:9522864dd661dcadfd9958f9e0de192a1fdda2c162a35668ab6ac42b465f0603
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
2、创建Nginx挂载目录卷
#当然,挂载地址自己决定就好
mkdir /usr/nginx/config /usr/nginx/log /usr/nginx/html
3、启动Nginx容器
【ps:挂载的技术卷需要与步骤二创建的文件路径相同】
docker run -p 80:80 -p 443:443 --name nginx -v /usr/nginx/config/:/etc/nginx/ -v /usr/nginx/logs/:/var/log/nginx -v /usr/nginx/html/:/usr/share/nginx/html/ -d nginx
##解释
- docker run # docker运行容器命令
- -p # 开放的端口号, 开放80端口以及443端口即可
- –name #给启动的容器起别名
- -v #挂载卷(不用进入容器进行修改容器内容)
- -d #后台运行容器
[root@VM-12-11-centos /]# docker run -p 80:80 -p 443:443 --name nginx -v /usr/nginx/config/:/etc/nginx/ -v /usr/nginx/logs/:/var/log/nginx -v /usr/nginx/html/:/usr/share/nginx/html/ -d nginx
199b564f34cc5aa1e91e1129ba1ba97ef841aff29bf035d57bc5727d7fe0b263
[root@VM-12-11-centos /]#
4、配置Nginx配置类
此处看步骤二,步骤二创建的地址
cd / usr/nginx/config/conf.d
vi default.conf
[root@VM-12-11-centos /]# cd /usr/nginx/config/conf.d
[root@VM-12-11-centos conf.d]# ls
default.conf default.conf.bak
[root@VM-12-11-centos conf.d]# vi default.conf
# 进入编辑页面
5、修改配置类
server {
listen 443;
server_name 【监听域名】;
location / {
# 反向代理到 81 端口
proxy_pass http://【内网地址】:80;
add_header Access-Control-Allow-Origin *;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 443;
server_name 【portainer.监听二级域名】;
location / {
# 反向代理到 9443 端口
proxy_pass http://【内网地址】:9443;
add_header Access-Control-Allow-Origin *;
}
}
小技巧:出于安全考虑,对外端口只暴露80、443即可,Nginx代理转发使用内网地址,进行不同端口的对外暴露
6、重启项目进行验证
docker ps
docker restart 【nginx的Id】
[root@VM-12-11-centos /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
199b564f34cc nginx "/docker-entrypoint.…" 28 minutes ago Up 19 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx
[root@VM-12-11-centos /]# docker start 199b564f34cc
199b564f34cc