当前位置: 首页 > 面试题库 >

Docker中的HOST和NONE网络有什么用?

颜嘉誉
2023-03-14
问题内容

为了了解Docker网络,Docker会自动创建以下网络:

# docker network ls 
NETWORK ID          NAME                DRIVER              SCOPE
67b4afa88032        bridge              bridge              local               
c88f997a2fa7        host                host                local               
1df2947aad7b        none                null                local

我了解到, 桥接网络
代表了所有Docker安装中存在的docker0网络(从链接中引用)。

有人可以帮助我了解其他网络, 托管 托管 ,如果可能的话,提供示例。


问题答案:

Docker 默认支持3个网络

1)无

此模式 不会为容器配置任何IP也无法访问外部网络以及其他容器 。它具有回送地址,可用于运行批处理作业。

# docker run -it --network=none ubuntu:14.04 /bin/bash
root@66308c6686be:/# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# 
# docker inspect 66308c6686be | grep -i ipaddr
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "",

2)主持人

在这种模式下, 容器将共享主机的网络堆栈,并且来自主机的所有接口将对容器可用 。容器的主机名将与主机系统上的主机名匹配

# docker run -it --net=host ubuntu:14.04 /bin/bash
root@labadmin-VirtualBox:/# hostname
labadmin-VirtualBox

甚至IP配置也与主机系统的IP配置相同

root@labadmin-VirtualBox:/# ip addr | grep -A 2 eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:b5:82:2f brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
       valid_lft forever preferred_lft forever
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
root@labadmin-VirtualBox:/# exit
exit

HOST SYSTEM IP CONFIGURATION

# ip addr | grep -A 2 eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:b5:82:2f brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
       valid_lft forever preferred_lft forever
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default

在主机和无模式下,未直接配置,但是可以配置默认桥接网络以及创建自己的用户定义的桥接网络。

3)桥接模式

这是 Docker的默认联网模式,它将启用到主机的其他接口以及容器之间的连接

# docker run -it --network=bridge ubuntu:14.04 /bin/bash
root@58b0b1f18b2e:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:0c  
          inet addr:172.17.0.12  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2668 (2.6 KB)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

在桥接模式下可以访问其他容器。

root@58b0b1f18b2e:/# ping 172.17.0.11
PING 172.17.0.11 (172.17.0.11) 56(84) bytes of data.
64 bytes from 172.17.0.11: icmp_seq=1 ttl=64 time=0.143 ms
64 bytes from 172.17.0.11: icmp_seq=2 ttl=64 time=0.050 ms

与外部网络的连接。

root@58b0b1f18b2e:/# ping google.com 
PING google.com (216.58.197.46) 56(84) bytes of data.
64 bytes from maa03s20-in-f46.1e100.net (216.58.197.46): icmp_seq=1 ttl=51 time=16.9 ms

与主机的连接

root@labadmin-VirtualBox:~# ip a | grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0

root@58b0b1f18b2e:/# ping 10.0.2.15
PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.113 ms

连同这些docker提供了MACVLAN网络,该网络允许在单个物理接口上配置多个第2层(MAC)地址。



 类似资料:
  • 容器与主机、容器与容器之间是互相隔离的。同时,我们可以通过配置 docker 网络,为容器创建完全独立的网络命名空间,或者使容器共享主机或者其他容器的网络命名空间,以应对不同场景的需要。 这里有4 种常用的单宿主机网络模式: bridge 模式; host 模式; container 模式; none 模式。 本节将介绍网络模式中的 host 模式。 1. host 模式 host 模式下启动的容

  • 容器与主机、容器与容器之间是互相隔离的。同时,我们可以通过配置 docker 网络,为容器创建完全独立的网络命名空间,或者使容器共享主机或者其他容器的网络命名空间,以应对不同场景的需要。 这里有4 种常用的单宿主机网络模式: bridge 模式; host 模式; container 模式; none 模式。 本小节我们将了解网络模式中的 none 模式。 1. none 模式 容器有自己的网络命

  • 问题内容: 我最近遇到了这种语法,但我没有意识到两者之间的区别。 如果有人可以告诉我与众不同,我将不胜感激。 问题答案: 一个类可以自由选择以任何方式实现比较,并且可以选择与None进行比较意味着某种意义(这实际上是有道理的;如果有人告诉你从头开始实现None对象,那么你将如何获得它来比较True?反对自己?)。 实际上,由于自定义比较运算符很少见,因此差异不大。但是你应该使用般规则。

  • 我有一个 docker 容器,我想给它 --network=host AND -。我需要连接到主机网络才能将主机数据狗服务器 (UDP) 和 网络用于其数据库。 尝试添加这两个网络会导致。 知道正确的处理方法吗?

  • 问题内容: 我正在使用读取csv文件的两列,然后将值分配给字典。这些列包含数字和字母字符串。有时在某些情况下单元格为空。在我看来,应读取但应分配该字典条目的值。当然,由于它具有空值,因此更能描述一个空单元格,而nan只是说读取的值不是数字。 我的理解正确吗,和之间有什么区别?为什么分配而不是? 另外,我的字典检查是否有任何空单元格一直在使用: 但这给了我一个错误,说我不能使用此检查v。我猜这是因为

  • 最简单的网络模型就是让容器共享Host的network namespace,使用宿主机的网络协议栈。这样,不需要额外的配置,容器就可以共享宿主的各种网络资源。 优点 简单,不需要任何额外配置 高效,没有NAT等额外的开销 缺点 没有任何的网络隔离 容器和Host的端口号容易冲突 容器内任何网络配置都会影响整个宿主机