查看nginx镜像(可跳过)
docker search nginx
拉取nginx镜像
#不加tag的话,默认拉取最新的
docker pull nginx
创建nginx容器
# --name nginx 命名为nginx
# -p 80:80 端口映射,第一个80为主机端口,第二个为容器端口
# -d 后台运行
# nginx:latest 镜像标识
docker run --name nginx -p 80:80 -d nginx:latest
# 显示运行中的容器
docker ps
挂载主机文件到容器,方便后续修改
# 创建log,conf,html.conf.d文件夹
mkdir -p /my_project/docker/nginx/{log,conf,html,conf.d}
# 从容器复制文件nginx.conf和文件夹conf.d html
# nginx:中的nginx为容器名
docker cp nginx:/etc/nginx/nginx.conf /my_project/docker/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /my_project/docker/nginx
docker cp nginx:/usr/share/nginx/html /my_project/docker/nginx
# 移除容器
docker rm -f nginx
# 重新创建容器并挂在主机文件
# -v /my_project/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf,将主机文件挂在到容器,
# 冒号前为主机路径,后为容器路径
docker run --name nginx -p 80:80 -v /my_project/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /my_project/docker/nginx/conf.d:/etc/nginx/conf.d -v /my_project/docker/nginx/html:/usr/share/nginx/html -v /my_project/docker/nginx/log:/var/log/nginx -d nginx:latest
修改nginx.conf配置文件,部署dist
将前端生成的dist文件夹放到主机 /my_project/docker/nginx/html 路径下(注:路径已挂载到容器),修改主机中nginx.conf的server部分(注:文件已挂载到容器),即上述红色部分路径,使其指向dist文件夹,重启nginx即可(注: 我这里为angularDemo)
# 重启nginx命令
# nginx为容器名
docker restart nginx
重启后,访问画面出现403错误,可能是权限问题,nginx没权限操作新加的文件夹
# 授权
chmod -R 777 /my_project/docker/nginx/html/angularDemo
# 重启
docker restart nginx
部署结果
若有不足,欢迎指出,开发之路,与君共勉!