使用nginx,结合docker目录挂载,部署前端项目

570 阅读2分钟

前提:服务器中安装docker

1,使用docker安装nginx镜像

docker pull nginx

默认安装最新版本的nginx镜像。

2,docker目录挂载

首先需要将nginx对应的文件拷贝到宿主机中这里将nginx的对应地址复制到我的桌面

docker cp nginx:/etc/nginx/nginx.conf /Users/sunshine/desktop/docker-nginx/

docker cp nginx:/etc/nginx/conf.d/ /Users/sunshine/desktop/docker-nginx/conf/

docker cp nginx:/usr/share/nginx/html/ /Users/sunshine/desktop/docker-nginx/html/

docker cp nginx:/var/log/nginx/ /Users/sunshine/desktop/docker-nginx/logs/

复制完成之后的目录如下:

image.png

然后创建并运行容器:

docker run -p 80:80 
-v /Users/sunshine/desktop/docker-nginx/nginx.conf:/etc/nginx/nginx.conf 
-v /Users/sunshine/desktop/docker-nginx/logs:/var/log/nginx 
-v /Users/sunshine/desktop/docker-nginx/html:/usr/share/nginx/html 
-v /Users/sunshine/desktop/docker-nginx/conf:/etc/nginx/conf.d 
-v /etc/localtime:/etc/localtime --name nginx --restart=always -d nginx:1.22.0

参数说明

-p 映射端口,格式为“宿主机端口:容器端口”
-v 挂载文件
-e TZ=Asia/Shanghai  设置时区
--privileged=true 让容器中的root用户拥有真正的root权限
--name  容器名字,以后可以使用这个名字启动或者停止容器
--restart=always docker启动时自动启动容器
-d 指定要启动的镜像名

如果运行出现如下报错:

image.png

则需要配置一下docker的安全路径,将挂载的目录配置到docker的安全路径即可:

image.png

注意:挂载文件目录的大小写和配置安全路径的大小写要保持一致,否则也会出现运行出错的情况

docker运行nginx容器没有报错,浏览器访问http://ip:80,可以看到nginx页面:

image.png

3,修改nginx文件配置

这些从nginx中复制的文件是用于存放默认页面、日志、配置文件,把这些文件挂载到宿主机上好处是:在需要频繁修改Nginx配置的场景中,不需要关注容器中的数据,直接删除重建容器就好。

  • 在宿主机上修改html目录下的文件是即时生效的。
  • 在宿主机上修改nginx.conf和conf目录下的配置文件后,需要重启容器重新加载配置。