提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
在 Docker 中启动 Nginx 并挂载配置文件到宿主机目录
- 前言
- 一、创建宿主机目录存放 Nginx 配置
- 1.1 在宿主机(如 Windows 或 Linux)上创建目录,用于存放 Nginx 的配置文件:
- 1.2 启动临时 Nginx 容器(仅用于复制默认配置)
- 1.3 启动正式 Nginx 容器并挂载配置
- 1.3.1 使用 -v 参数挂载宿主机目录到容器内部:
- 1.3.2 参数说明:
- 1.4 验证 Nginx 是否运行
- 1.5 修改配置文件并重载
- 1.6 示例:自定义一个静态网站
- 1.6.1 在 /data/nginx/html 中创建 index.html:
- 1.6.2 访问 http://localhost,将显示自定义内容。
- 二、nginx常见配置文件放置位置
- 2.1 Nginx 容器默认的配置文件路径
- 2.2 目录结构建议
前言
nginx在开发应用中世纪作用非常广泛,这篇文章分析在 Docker 中启动 Nginx 并挂载配置文件到宿主机目录的教程。
一、创建宿主机目录存放 Nginx 配置
1.1 在宿主机(如 Windows 或 Linux)上创建目录,用于存放 Nginx 的配置文件:
mkdir -p /data/nginx/conf # 配置文件目录
mkdir -p /data/nginx/html # 静态文件目录(可选)
mkdir -p /data/nginx/logs # 日志目录(可选)
1.2 启动临时 Nginx 容器(仅用于复制默认配置)
运行一个临时 Nginx 容器,将其默认配置文件复制到宿主机:
docker run --name nginx-temp -d nginx
docker cp nginx-temp:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx-temp:/etc/nginx/conf.d /data/nginx/conf/
docker rm -f nginx-temp # 删除临时容器
现在宿主机 /data/nginx/conf/ 目录下会有 Nginx 的默认配置文件。
1.3 启动正式 Nginx 容器并挂载配置
1.3.1 使用 -v 参数挂载宿主机目录到容器内部:
docker run -d \--name my-nginx \-p 80:80 \-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \-v /data/nginx/html:/usr/share/nginx/html \-v /data/nginx/logs:/var/log/nginx \nginx
1.3.2 参数说明:
-p 80:80:将宿主机的 80 端口映射到容器的 80 端口。
-v:挂载目录或文件:
/data/nginx/conf/nginx.conf → 主配置文件。
/data/nginx/conf/conf.d → 子配置文件(如 default.conf)。
/data/nginx/html → 静态网页文件(可放置 index.html)。
/data/nginx/logs → 日志文件(access.log 和 error.log)。
1.4 验证 Nginx 是否运行
访问 http://localhost,应看到 Nginx 默认页面。
检查容器日志:
docker logs my-nginx
1.5 修改配置文件并重载
直接编辑宿主机的配置文件(如 /data/nginx/conf/nginx.conf),然后让 Nginx 重新加载配置:
docker exec my-nginx nginx -s reload
无需重启容器,配置即可生效。
1.6 示例:自定义一个静态网站
1.6.1 在 /data/nginx/html 中创建 index.html:
<!DOCTYPE html>
<html>
<body><h1>Hello from Nginx!</h1>
</body>
</html>
1.6.2 访问 http://localhost,将显示自定义内容。
二、nginx常见配置文件放置位置
2.1 Nginx 容器默认的配置文件路径
主配置文件:/etc/nginx/nginx.conf
虚拟主机配置(server blocks):/etc/nginx/conf.d/(通常以 .conf 结尾)
默认虚拟主机配置:/etc/nginx/conf.d/default.conf
2.2 目录结构建议
/path/on/host/
├── nginx.conf # 主配置文件
├── conf.d/
│ └── default.conf # 虚拟主机配置
└── html/ # 静态文件