Linux-docker网络相关知识

Docker网络

Docker服务安装完成之后,默认在每个宿主机会生成一个名称为docker0的网卡其IP地址都是172.17.0.1/16,并且会生成三种不能=同类型的网络

[11:02:55 root@ubuntu-lyj ~]#ifconfig docker0
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:fff:fef5:c936  prefixlen 64  scopeid 0x20<link>
        ether 02:42:0f:f5:c9:36  txqueuelen 0  (Ethernet)
        RX packets 46  bytes 6310 (6.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 66  bytes 8388 (8.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[11:02:58 root@ubuntu-lyj ~]#docker network list
NETWORK ID     NAME            DRIVER    SCOPE
f8bd89ab9ee6   bridge          bridge    local
33b7b13498f4   harbor_harbor   bridge    local
1faa19297211   host            host      local
13d0417a04ab   none            null      local

docker网络类型:

Docker的网络使用docker network ls 命令看到有三种类型。

[11:02:58 root@ubuntu-lyj ~]#docker network list
NETWORK ID     NAME            DRIVER    SCOPE
f8bd89ab9ee6   bridge          bridge    local
33b7b13498f4   harbor_harbor   bridge    local
1faa19297211   host            host      local
13d0417a04ab   none            null      local

Bridge:桥接,使用自定义IP
Host:不获取IP直接使用物理机IP,并监听物理机IP监听端口
None:没有网络

Bridge模式:使用参数 -net=bridge指定,不指定默认就是bridge模式。

Host模式:host模式,使用参数 -net=host指定。

  • 启动的容器如果指定了使用host模式,那么新创建的容器不会创建自己的虚拟网卡,而是直接使用宿主机的网卡和IP地址,因此在容器里面查看到IP信息就是宿主机的信息,访问容器的时候直接使用宿主机IP+容器端口即可,不过容器的其他资源必须文件系统、系统进程等还是和宿主机保持隔离。
  • 此模式的网路性能最高,但是各容器之间端口不能相同,适用于运行容器端口比较固定的业务。
  • 为避免端口冲突,先删除所有的容器;
  • Host模式不支持端口映射

none模式:使用参数 -net-none指定

在使用none模式后,Docker容器不会进行任何网络配置,其没有网卡,没有IP也没有路由,因此默认无法与外界通信,需要手动添加网卡配置IP等,所以极少使用。

posted @ 2022-08-11 11:21  goodbay说拜拜  阅读(222)  评论(0编辑  收藏  举报