参考博客:Docker 安装 Nginx 容器 (完整详细版)

下载Nginx镜像

下载最新镜像

docker pull nginx

下载指定镜像

docker pull nginx:xxx

Docker中部署Nginx

前期准备

创建Nginx目录

mkdir -p /home/nginx/{conf,log,html}

初始化运行nginx容器

docker run --name nginx -p 9001:80 -d nginx

复制nginx容器中配置文件到宿主机

docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/

停止并删除nginx容器

docker stop 容器id && docker rm 容器id

开始部署

docker run \
-p 9002:80 \
--name nginx \
--privileged=true \
--restart=always \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx

验证nginx

curl 127.0.0.1:9002

实际运行

容器id:e3c7e97a2139

验证配置文件

docker exec e3c7e97a2139 nginx -t

重启Nginx

docker exec e3c7e97a2139 nginx -s reload

注意事项

参考博客:使用Docker+Nginx部署前端项目

root对应的路径属于容器内路径+外部宿主机目录

location / {
access_log off;
#备注:`/usr/share/nginx/html/` 为容器内路径,`seezoon-admin-web/dist` 为docker-v映射外部宿主机的文件目录
root /usr/share/nginx/html/seezoon-admin-web/dist;
index index.html index.htm;
}

Docker的部署命令使用-v容器内部路径映射到宿主机,这里在配置*.conf时候,若存在静态页面资源需要配置路径,需要指定实际配置文件的路径容器内路径+外部宿主机目录