Docker 网络


容器网络

容器只看到一个带有IP地址、网关、路由表、DNS服务和其他网络细节的网络接口。容器没有关于它连接的网络类型的信息,无论是 bridge, overlay, macvlan network, custom network plugin。除非容器使用none网络驱动程序。


暴露端口

默认情况下,当使用 docker createdocker run 创建或运行容器时,容器不会将其任何端口暴露给外部。要使端口可供 Docker 之外的服务使用,或者供在不同网络上运行的 Docker 容器使用,使用--publish-p标志。这将在容器中创建防火墙规则,将容器端口映射到 Docker 主机上的端口以供外部使用。

Flag valueDescription
-p 8080:80将容器中的TCP端口80映射到 Docker 主机上的端口8080
-p 192.168.1.100:8080:80将容器中的TCP端口映射到 ip地址为192.168.1.1008080 端口
-p 8080:80/udp将容器中的UDP端口80映射到 Docker 主机上的端口8080
-p 8080:80/tcp -p 8080:80/udp将容器中的TCP端口80映射到Docker主机上的TCP端口8080,并将容器中UDP端口80映射至Docker主机的UDP端口8080

IP 地址和主机名

默认情况下,容器会为连接到的每个Docker网络获得一个IP地址。容器从连接的网络的IP地址池中接收IP地址。Docker 守护程序实际上充当了每个容器的 DHCP 服务器。每个网络还具有默认子网掩码和网关。

当容器启动时,它只能连接到单个网络,使用--network标志。可以使用docker network connect将现有容器连接到不同的网络时,可以使用该命令的--ip--ip6标志指定容器在其他网络上的IP地址。

容器的主机名默认为Docker中的容器ID。您可以使用--hostname覆盖主机名。当使用docker network connect连接到现有网络时,可以使用–alias标志为该网络上的容器指定附加网络别名。


DNS 服务

默认情况下,容器继承主机的DNS设置 (/etc/resolv.conf 文件中的配置)。

主机上的/etc/hosts中定义的自定义主机不会被容器继承。

FlagDescription
--dns指定DNS 服务器IP地址,如果有多个DNS服务器,使用多个 --dns 指定,当无法访问到指定的IP地址时,会默认使用谷歌的公开DNS服务器8.8.8.8,这允许容器解析internet域。
--hostname指定容器主机名,默认是容器ID



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值