0%

Docker部署配置Nginx

在 Docker 中运行 Nginx 并进行部署和配置涉及以下步骤:

拉取 Nginx 镜像:

首先,你需要拉取官方的 Nginx 镜像。在命令行中执行以下命令:

1
docker pull nginx

运行 Nginx 容器:

使用 docker run 命令来启动一个 Nginx 容器。例如:

1
docker run --name my-nginx -p 8080:80 -d nginx

这条命令会创建一个名为 my-nginx 的容器,将容器的 80 端口映射到宿主机的 8080 端口,并以守护态(后台)模式运行。

配置 Nginx:

要配置 Nginx,你可以创建一个自定义的 Nginx 配置文件,并将它挂载到容器中。首先,创建一个本地目录来存放你的 Nginx 配置文件:

1
mkdir -p /my/nginx/conf

然后,创建一个 Nginx 配置文件,例如 nginx.conf,并放到你刚才创建的目录中。
接下来,停止并移除之前运行的 Nginx 容器:

1
2
docker stop my-nginx
docker rm my-nginx

现在,使用 -v 标志将你的配置文件目录挂载到容器中的 /etc/nginx 目录,并重新运行 Nginx 容器:

1
docker run --name my-nginx -p 8080:80 -v /my/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx

自定义网站内容:

如果你需要为 Nginx 提供自定义的网站内容,你可以在本地创建一个目录,将你的网页文件放在这个目录中,然后将其挂载到容器中的 /usr/share/nginx/html 目录。例如:

1
2
3
mkdir -p /my/nginx/html
# 将你的网页文件放在 /my/nginx/html 目录中
docker run --name my-nginx -p 8080:80 -v /my/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /my/nginx/html:/usr/share/nginx/html:ro -d nginx

重启 Nginx 以应用配置更改:

如果你修改了 Nginx 配置文件,你需要重启 Nginx 容器来应用这些更改:

1
docker restart my-nginx

特殊说明

关于镜像

nginx:1.25.4 : 这种格式的镜像为官方推荐的,大小大概为快200MB。

nginx:1.25.4-alpine : 这种镜像是基于alpine linux制作的,使用的是musl libc,如果在镜像中添加其他软件,可能会遇到问题,大小为40MB左右。

总结:如果需要基于镜像,添加新的功能,或者添加新的nginx模块,则使用nginx官方推荐镜像,如果只是使用nginx基础功能,则使用alpine镜像。

关于日志

docker image中默认保留52天的log,路径为var/log/nginx/*.log

关于网络

如果使用桥接模式,访问本地端口时,需要使用IP地址访问,不能使用localhostHost模式则不受影响。

关于配置

如果nginx配置中有配置文件地址,切记配置容器内部地址,这样才能正确访问对应资源。