背景
项目中服务器前端部署的时候经常性会用nginx,每次都要安装,同时还要根据具体的项目业务配置nginx.conf文件,在整体运维升级的过程中都是用容器化部署,因此尝试nginx容器化部署。
安装步骤
1、获取镜像
执行命令:docker pull nginx
镜像拉取完成之后,可以使用命令docker images看看有没有名称为nginx的镜像
2、创建相关的文件
执行命令:mkdir -p /home/docker/nginx/{conf.d,log,html}
3、启动nginx容器
执行命令:docker run -d --name nginx -p 80:80 镜像名
4、查看容器是否启动
docker ps中可以看到nginx容器,说明已经启动成功了
5、查看相关文件的位置
docker exec -it nginx /bin/bash cd /etc/nginx ls -l
说明:nginx容器内的默认首页html文件目录为/usr/share/nginx/html;
日志文件位于/var/log/nginx
6、将相关文件挂载到硬盘具体文件下
docker cp nginx:/etc/nginx/nginx.conf /home/docker/nginx/nginx.conf docker cp nginx:/etc/nginx/conf.d/default.conf /home/docker/nginx/conf.d/default.conf docker cp nginx:/usr/share/nginx/html /home/docker/nginx/ docker cp nginx:/var/log/nginx/ /home/docker/nginx/logs/
7、将原先的nginx容器停止并删除
docker stop nginx docker rm nginx
8、重新启动一个新的nginx容器
docker run -p 80:80 --name nginx --restart=always -m 2000m
-v /home/docker/nginx/logs/nignx:/var/log/nginx
-v /home/docker/nginx/html:/usr/share/nginx/html
-v /home/docker/nginx/conf.d:/etc/nginx/conf.d
-v /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf
-e TZ=Asia/Shanghai
--privileged=true -d nginx
9、根据需求修改nginx.conf的配置内容
10、前端打包好的文件直接放入到html文件夹中
11、访问浏览器,如果是本地,http://localhost:80即可看到前端页面了
说明:这个部署的过程中,貌似不同版本的nginx,其相关文件的路径可能不太一样,或者文件名不太一样,因此要根据实际的版本去做具体的决策操作。
我在第一次安装的时候,配置了nginx.conf后文件并没有生效,后来尝试配置default.conf,居然就生效了,可能的原因,外挂文件的时候,docker只读到default.conf文件了,具体原因还需要进一步确认。