理解Docker运行Nginx的两种命令

理解Docker运行Nginx的两种命令

在使用Docker运行Nginx时,我们通常需要指定容器的名称、端口映射、数据卷挂载以及网络设置。本文将通过对比两个Docker命令,来解释它们的区别及其背后的意义。

命令一
docker run -d \
  --name nginx \
  -p 18080:18080 \
  -p 18081:18081 \
  -v /root/nginx/html:/usr/share/nginx/html \
  -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
  --network hmall \
  nginx
命令二
docker run -d \
  --name nginx \
  -p 18080:18080 \
  -v /root/nginx/html:/usr/share/nginx/html \
  -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
  --network hmall \
  nginx
区别解析

两条命令的主要区别在于端口映射部分。命令一映射了两个端口,而命令二只映射了一个端口。

  1. 端口映射

    • 命令一-p 18080:18080 -p 18081:18081
    • 命令二-p 18080:18080

    命令一中将宿主机的两个端口(18080和18081)映射到容器的相应端口。这意味着宿主机的这两个端口都可以被外部访问,并转发到容器中的对应端口。这样做通常是为了支持Nginx中的多种服务,比如一个端口用于HTTP服务,另一个端口用于HTTPS服务或者其他用途。

    命令二只映射了一个端口(18080)。这意味着只有这个端口可以被外部访问并转发到容器中的18080端口。

  2. 适用场景

    • 命令一:适用于需要多个端口支持的场景。例如,一个端口用于HTTP服务,另一个端口用于HTTPS服务。
    • 命令二:适用于只需要一个端口的简单场景。例如,只需要一个HTTP服务。
完整命令解释

以下是对两个命令中各个参数的解释:

  • docker run -d:后台运行容器。
  • --name nginx:为容器指定名称为nginx。
  • -p 18080:18080:将宿主机的18080端口映射到容器的18080端口。
  • -p 18081:18081:将宿主机的18081端口映射到容器的18081端口(仅在命令一中存在)。
  • -v /root/nginx/html:/usr/share/nginx/html:将宿主机的/root/nginx/html目录挂载到容器的/usr/share/nginx/html目录。
  • -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf:将宿主机的/root/nginx/nginx.conf文件挂载到容器的/etc/nginx/nginx.conf文件。
  • --network hmall:将容器连接到名为hmall的网络。
  • nginx:使用nginx镜像。
总结

通过对比,我们可以看到,命令一和命令二的主要区别在于端口映射的数量。命令一适用于需要多个端口支持的复杂场景,而命令二适用于简单的单端口场景。在实际使用中,应根据具体需求选择合适的命令。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值