Docker部署nginx
前言
本文主要介绍在docker中部署并使用nginx,文中直接通过挂载方式将nginx的配置文件和站点目录挂载到宿主机上。本文使用的nginx镜像是 官方镜像(https://hub.docker.com/_/nginx?tab=tags)
下载镜像
docker pull nginx:latest
创建挂载目录
# 配置文件目录
mkdir -p /data/nginx/conf
# 站点目录
mkdir -p /data/nginx/html
# nginx日志目录
mkdir -p /data/nginx/log
简单启动容器
这里启动容器的目的是为了将容器中配置文件拷贝到宿主机中的挂载目录里,因为当宿主机和容器都不存在 nginx.conf 文件时, 执行启动命令时docker会将nginx.conf作为目录创建,而我们不需要创建目录而是配置文件,因此需要该步骤。
# 启动容器
docker run --name nginx -p 80:80 -d nginx
# 将容器中nginx.conf文件复制到宿主机的挂载目录中
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
# 将容器中conf.d文件夹下内容复制到宿主机的挂载目录中
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机的挂载目录中
docker cp nginx:/usr/share/nginx/html /data/nginx/
删除容器
上一步创建的简单容器就是为了拷贝文件,拷贝成功后就删除简单容器,下一步会通过挂载方式创建正式容器。
# 删除正在运行的容器
docker rm -f nginx
运行容器
docker run -d -p 5000:80 --name nginx --restart=always \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
nginx
参数说明:
- -d 后台运行
- -p 端口映射(宿主机端口:容器端口)
- --restart=always 容器自动重启
- -v 目录挂载(宿主机目录:容器目录)
查看容器运行情况
后期发布站点只需要修改/data/nginx/conf中的配置文件,同时将需要发布的站点文件上传到/data/nginx/html即可。