参考资料
json
{
"title": "Nginx Docs",
"desc": "Drone is a self-service Continuous Integration platform for busy development teams.",
"logo": "/assets/svg/common/nginx.svg",
"link": "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/",
"background": "#fff"
}json
{
"title": "Deploying NGINX and NGINX Plus on Docker",
"desc": "Deploy NGINX and NGINX Plus as the Docker container.",
"logo": "/assets/svg/common/nginx.svg",
"link": "https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/",
"background": "#fff"
}先决条件
- 创建挂载目录
mkdir -p /你的位置/nginx/{conf,conf.d,html,logs,cert} - 下载镜像
docker pull nginx
运行并拷贝文件到宿主机
运行
shelldocker run -i -t nginx查看CONTAINER ID
shelldocker ps -a拷贝
shelldocker cp CONTAINER ID:/etc/nginx/nginx.conf /你的位置/nginx/conf/nginx.conf docker cp CONTAINER ID:/etc/nginx/conf.d/default.conf /你的位置/nginx/conf.d/default.conf
编写Docker Compose.yml文件,文件内容如下👇
yml
version: "3"
networks:
my-net:
external: true
services:
nginx:
image: nginx:latest
container_name: nginx
volumes:
- /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- /data/nginx/logs:/var/log/nginx
- /data/nginx/html:/usr/share/nginx/html
- /data/nginx/cert:/etc/nginx/cert
restart: always
networks:
- my-net
ports:
- "80:80"
- "443:443"解释
my-net提前构建的网络的名称,external: true使用外部网络,也就是说使用我之前创建好的网络- volumes:
:前宿主机地址,后容器地址/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:挂载配置文件/data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:挂载配置文件/data/nginx/logs:/var/log/nginx:挂载日志/data/nginx/html:/usr/share/nginx/html:挂载静态页面/data/nginx/cert:/etc/nginx/cert:挂载ssl地址
注意
因为为拷贝默认的 html 目录,所以访问 localhost 时显示 403 Forbidden,如果想显示 nginx 默认页面可以在挂载前先拷贝一份默认的 html
docker cp CONTAINER ID:/usr/share/nginx/html /你的位置/html/data/** 此处我用的是绝对路径,请根据自己情况修改,假设文件目录为丨-- nginx 丨-- conf 丨-- conf.d 丨-- logs 丨-- heml 丨-- cert 且 docker-compose.yml 在 nginx 目录下,可以将 /data/nginx 改为 ./
执行命令
shell
docker compose up -d访问服务器地址/ip如图👇

