拉取 Nginx 官方镜像:
docker pull nginx
运行 Nginx 容器(简单启动):
docker run --name my-nginx -p 80:80 -d nginx
进入正在运行的 Nginx 容器:
docker exec -it my-nginx bash
Nginx 配置文件通常位于:
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
使用容器内的编辑器(如 vi 或 nano)修改配置文件后,重新加载 Nginx:
nginx -s reload
首先从容器中复制默认配置文件到本地:
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
docker cp my-nginx:/etc/nginx/conf.d/default.conf ./default.conf
创建本地目录存放配置文件和网站文件:
mkdir -p ~/nginx/{conf,html,logs}
mv nginx.conf default.conf ~/nginx/conf/
使用挂载卷重新启动容器:
docker run --name my-nginx \
-p 80:80 \
-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v ~/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf \
-v ~/nginx/html:/usr/share/nginx/html \
-v ~/nginx/logs:/var/log/nginx \
-d nginx
现在可以直接在本地修改配置文件,修改后需要重启容器或重新加载配置:
docker restart my-nginx
# 或者
docker exec my-nginx nginx -s reload
创建 Dockerfile
:
FROM nginx
COPY custom.conf /etc/nginx/conf.d/
COPY html/ /usr/share/nginx/html/
构建自定义镜像:
docker build -t my-custom-nginx .
运行自定义镜像:
docker run --name my-nginx -p 80:80 -d my-custom-nginx
检查 Nginx 配置是否正确:
docker exec my-nginx nginx -t
重新加载配置(不重启容器):
docker exec my-nginx nginx -s reload
修改 default.conf
示例:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
# 启用 gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
}
# 自定义错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
通过以上方法,你可以灵活地在 Docker 中管理 Nginx 及其配置。方法二(挂载本地配置文件)是最推荐的,因为它便于版本控制和持续部署。