1、拉取nginx
# 拉取最新稳定版 docker pull nginx # 指定固定版本(推荐生产使用,例如1.27) docker pull nginx:1.27
查看本地镜像 docker images | grep nginx
2、两种运行方式
方式一:快速临时运行 (仅供测试使用,无持久化)
[root@localhost ~]# docker run -d --name mynginx -p 80:80 nginx:latest cd362f284a83533d8e1d518317a6a028c312be88207a35313d7731ccd8dbcec1
参数说明:
-d 后台守护运行
--name nginx-test 容器名称
-p 宿主机端口:容器内端口 端口映射
访问服务器 IP 即可打开 Nginx 默认页面:http://服务器IP

停止删除容器
docker stop nginx-test docker rm nginx-test
方式二:生产推荐(挂载目录持久化,可自定义页面、配置、日志)
1、创建宿主机存放目录
mkdir -p /data/nginx/{conf,html,logs}/data/nginx/html:存放网站静态页面
/data/nginx/conf:nginx.conf 配置文件
/data/nginx/logs:访问 / 错误日志
2、从临时容器复制默认配置到宿主机
先启动临时容器拷贝文件
docker run --rm nginx:1.27 cat /etc/nginx/nginx.conf > /data/nginx/conf/nginx.conf docker run --rm nginx:1.27 cat /etc/nginx/conf.d/default.conf > /data/nginx/conf/default.conf
3、创建首页测试文件
echo "<h1>Docker Nginx 部署成功</h1>" > /data/nginx/html/index.html
4、启动持久化容器
docker run -d \ --name nginx \ -p 80:80 \ -v /data/nginx/html:/usr/share/nginx/html \ -v /data/nginx/conf:/etc/nginx/conf.d \ -v /data/nginx/logs:/var/log/nginx \ --restart always \ nginx:1.27
参数解释:
-v 宿主机目录:容器目录 数据挂载,修改宿主机文件容器实时生效
--restart always 开机 / 容器崩溃自动重启
3、常见命令管理
# 查看运行容器 docker ps # 查看 Nginx 日志 docker logs -f nginx # 进入容器内部 docker exec -it nginx bash # 重载 Nginx 配置(不重启容器) docker exec nginx nginx -s reload # 重启容器 docker restart nginx # 停止并删除容器 docker stop nginx && docker rm nginx
4、防火墙放行80端口
# 永久放行80 firewall-cmd --permanent --add-service=http firewall-cmd --reload # 查看放行列表 firewall-cmd --list-ports
5、自定义配置
编辑 /data/nginx/conf/default.conf,可修改域名、反向代理、静态缓存、SSL 等,改完执行重载:
docker exec nginx nginx -s reload
修改容器内nginx的index.html内容
方式一:进入容器内部编辑(最简单)
1、进入nginx容器
docker exec -it nginx bash
2、在容器中安装vim
apt update && apt install vim -y
3、编辑文件首页
vim /usr/share/nginx/html/index.html
写完保存退出,esc → 输入 :wq 回车
4、退出容器
exit
缺点:如果后续删除重建 Nginx 容器,修改会全部丢失。
方式二:宿主机写好文件,复制进容器(推荐)
1、在宿主机编辑自定义页面
vi /root/index.html
写入网页内容,保存
2、复制覆盖到容器内
docker cp /root/index.html nginx:/usr/share/nginx/html/index.html
刷新网页立刻生效,不需要重启 Nginx。
补充:
永久方案(以后不用反复复制)停止并删除现有容器,挂载目录启动,直接改宿主机文件:
# 准备目录 mkdir -p /data/nginx/html # 把当前容器页面拷出来 docker cp nginx:/usr/share/nginx/html/index.html /data/nginx/html/ # 删旧容器 docker stop nginx && docker rm nginx # 带挂载启动 docker run -d --name nginx -p 80:80 \ -v /data/nginx/html:/usr/share/nginx/html \ --restart always nginx
之后直接修改 /data/nginx/html/index.html 即可,永久保存。