您现在的位置是:首页 >技术交流 >Docker 网络网站首页技术交流
Docker 网络
简介Docker 网络
容器网络
容器只看到一个带有IP地址、网关、路由表、DNS服务和其他网络细节的网络接口。容器没有关于它连接的网络类型的信息,无论是 bridge, overlay, macvlan network, custom network plugin。除非容器使用none网络驱动程序。
暴露端口
默认情况下,当使用
docker create
或docker run
创建或运行容器时,容器不会将其任何端口暴露给外部。要使端口可供 Docker 之外的服务使用,或者供在不同网络上运行的 Docker 容器使用,使用--publish
或-p
标志。这将在容器中创建防火墙规则,将容器端口映射到 Docker 主机上的端口以供外部使用。
Flag value | Description |
---|---|
-p 8080:80 | 将容器中的TCP 端口80 映射到 Docker 主机上的端口8080 |
-p 192.168.1.100:8080:80 | 将容器中的TCP 端口映射到 ip 地址为192.168.1.100 的 8080 端口 |
-p 8080:80/udp | 将容器中的UDP 端口80 映射到 Docker 主机上的端口8080 |
-p 8080:80/tcp -p 8080:80/udp | 将容器中的TCP 端口80 映射到Docker主机上的TCP 端口8080 ,并将容器中UD P端口8 0映射至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
中定义的自定义主机不会被容器继承。
Flag | Description |
---|---|
--dns | 指定DNS 服务器IP地址,如果有多个DNS服务器,使用多个 --dns 指定,当无法访问到指定的IP地址时,会默认使用谷歌的公开DNS服务器8.8.8.8 ,这允许容器解析internet域。 |
--hostname | 指定容器主机名,默认是容器ID |
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。