Docker部署nginx

本文介绍了如何在没有互联网的情况下,从另一台有网络的设备获取NginxDocker镜像并转移到目标服务器。然后通过dockerrun命令启动容器,将nginx配置目录挂载到宿主机以便于维护。在启动容器时,为了避免错误,先创建一个临时容器来复制配置文件到挂载目录,接着删除临时容器,最后以挂载方式运行正式的Nginx服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文采用从docker hub安装,若没有互联网,需要找一台连接互联网的设备拉取镜像以后导出保存到本地,再将镜像手动上传加载到指定服务器进行配置部署。

补充:为了便于维护nginx配置,将容器的nginx目录绑定挂载到宿主机,后期在宿主机维护配置文件即可。
下载镜像
docker pull nginx:latest
创建挂载目录
# 配宿主机挂载目录
mkdir -p /vdockerfile
简单启动容器

这里启动容器的目的是为了将容器中配置文件拷贝到宿主机中的挂载目录里.

原因:

  1. 启动时(run),若挂载文件,当宿主机和容器都不存在 nginx.conf 文件时, 执行启动命令时docker会将nginx.conf作为目录创建,而我们不需要创建目录而是配置文件。

  1. 启动时(run),若挂载目录,不会将容器中指定绑定目录下的内容(目录/文件)同步至宿主机,即挂载的目录将是一个空目录,启动时便会报错(找不到文件)。

# 启动容器
docker run --name nginx -p 80:80 -d nginx
# 将容器中nginx文件复制到宿主机的挂载目录中
docker cp nginx:/etc/nginx /vdockerfile
删除容器

上一步创建的简单容器就是为了拷贝文件,拷贝成功后就删除简单容器,下一步会通过挂载方式创建正式容器。

# 删除正在运行的容器
docker rm -f nginx
运行容器
docker run -d -p 8083:80 --name nginx \
-v /vdockerfile/nginx:/etc/nginx \
nginx
#nginx默认端口为80,所以映射的容器端口需要为80,若需要使用其它端口,需要修改nginx默认端口后再运行。
nginx默认端口修改

查看nginx.conf文件,包含一个指定的默认配置文件

查看默认配置文件(由于我们配置了宿主机目录绑定,此处直接到宿主机下查找修改便会同步至容器)

修改默认配置文件

sudo vim /vdockerfile/nginx/conf.d/default.conf

参数说明:

  • -d 后台运行

  • -p 端口映射(宿主机端口:容器端口)

  • --restart=always 容器自动重启

  • -v 目录挂载(宿主机目录:容器目录)

查看日志
sudo docker container logs nginx
浏览器访问
http://ip:端口
#若为宿主机,就为:http://宿主机ip:8083
#若为容器,就为:http://容器ip:80

检查查看容器详情

sudo docker container inspect nginx

当中可看到容器IP

访问 http://172.17.0.3:80

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值