0
0
0

docker内部署nginx

文章摘要
|

配置镜像加速

[root@localhost docker]# bash <(curl -sSL https://n3.ink/helper)
#配置docker镜像加速,以上为购买的毫秒镜像加速

[root@localhost docker]# systemctl daemon-reload 
[root@localhost docker]# systemctl restart docker
#重启使新的配置配置生效

拉取nginx镜像

[root@localhost docker]# docker pull nginx
#默认拉取最新版本镜像

[root@localhost docker]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    9f33606b3685   2 weeks ago   161MB
#查看已经拉取的docker镜像文件

创建宿主机挂载目录

[root@localhost ~]# mkdir -p /home/nginx/conf /home/nginx/log /home/nginx/html
#默认只需要挂这三个目录就够了
#启动前需要先创建nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf)之所以要先创建 , 是因为Nginx本身容器只存/etc/nginx 目录 , 本身就不创建 nginx.conf 文件当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果

创建临时nginx容器拷贝原始数据内容

[root@localhost nginx]# docker run --name nginx1 -p 9001:80 -d nginx
#创建并启动容器,名称为nginx1,将容器内80端口映射到宿主机上的9001端口,-d分离模式(后台运行),nginx(镜像名称)
edae5e52a9a39566687fa9a23dfb08bf898dcfafda2f2029b67deb4a66bda9fe

[root@localhost nginx]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
edae5e52a9a3   nginx     "/docker-entrypoint.…"   22 seconds ago   Up 21 seconds   0.0.0.0:9001->80/tcp, :::9001->80/tcp   nginx1

[root@localhost nginx]# docker exec -it nginx1 /bin/bash
#进入名称nginx1的容器的内部

[root@localhost nginx]# docker cp nginx1:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf && docker cp nginx1:/etc/nginx/conf.d /home/nginx/conf/conf.d && docker cp nginx1:/usr/share/nginx/html /home/nginx/
Successfully copied 2.56kB to /home/nginx/conf/nginx.conf
Successfully copied 3.58kB to /home/nginx/conf/conf.d
Successfully copied 4.1kB to /home/nginx/
#将容器内nginx文件复制到宿主机的目录下

正式创建并启动nginx容器

[root@localhost nginx]# docker stop nginx1
nginx1
[root@localhost nginx]# docker rm nginx1
nginx1
#删除临时容器,或者docker rm -f nginx1删除正在运行的nginx1容器

[root@localhost nginx]# docker run \
> -p 9002:80 \
> --name nginx1 \
> -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
> -v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
> -v /home/nginx/log:/var/log/nginx \
> -v /home/nginx/html:/usr/share/nginx/html \
> -d nginx:latest
a21124c477508083de65c45b9d91b38d38596f1d5ffc130831319f6cafe5000b
#创建并启动nginx1容器,并进行端口映射,nginx:latest为指定使用最新版nginx镜像,将容器内文件挂载到宿主机(左边为宿主机目录,右边为docker容器内目录)

平滑加载配置

配置即时生效​:在宿主机修改 nginx.conf​ 后,只需执行 docker exec nginx nginx -s reload​ 即可平滑加载新配置。
  
​数据持久化​:即使删除容器(docker rm nginx​),你的网页文件、配置和日志依然安全地保存在 /home/nginx/​ 目录下。
  
方便调试​:可以直接在 /home/nginx/log/access.log​ 中查看实时访问日志,无需进入容器

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

docker内部署nginx
/archives/docker%E5%86%85%E9%83%A8%E7%BD%B2nginx
作者
Administrator
发布于
2026-09-15
许可协议
CC BY-NC-SA 4.0

评论

欢迎来到我的博客!