在 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 | docker stop 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 | mkdir -p /my/nginx/html |
重启 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地址访问,不能使用localhost
,Host
模式则不受影响。
关于配置
如果nginx
配置中有配置文件地址,切记配置容器内部地址,这样才能正确访问对应资源。