docker网络基础

介绍docker网络模式及使用场景

Posted by guanyang on 2022-06-08
Words 583 and Reading Time 2 Minutes
Viewed Times

概览

  • docker安装时便会为我们创建三种网络模式:host、none、bridge
  • 查看docker网络:
    1
    $> docker network ls

网络介绍

host网络

  • 容器创建时通过--network=host指定使用宿主机网络,此时容器与宿主机共享网络栈,容器内的网络配置和宿主机完全一样。

none网络

  • 容器创建时通过--network=none指定容器不创建任何网卡,此时容器里只有lo。

bridge网络

  • 容器创建时不指定--network,那么容器默认使用bridge网络。bridge网络是由docker创建的linux bridge — docker0提供。
  • 由于docker0网桥是安装docker时就默认创建的,我们无法在创建容器的时候指定容器ip,只能由docker0自动分配ip。如果想要创建容器的时候指定ip,需要自己再建一个bridge网络。

三种网络使用场景

host网络

  • 选用host网络的容器,其网络栈和宿主机一摸一样,它的优势在于网络性能强于其他网络模式。
  • 如果对网络传输有很大需求可以选用host网络。

none网络

  • none没有网卡的网络,能做到更加封闭,可以更好的保护重要数据,所以最适合对安全性要求高并且不需要联网的容器。

bridge网络

  • bridge网络是通过容器上虚拟网络设备和网桥上虚拟网络设备组成一组veth(相当于虚拟的网线)进行连接的,然后通过docker0从172.17.0.0/16分配ip给容器使用。
  • 显而易见bridge网络适用于日常需要连接网络的容器,例如http容器、web容器…

--link机制

  • 可以使新生成的容器链接到已在运行的容器,其原理就是在/etc/hosts里面添加了一个alias的名称
    1
    2
    # 格式: --link 容器名:别名
    docker run -itd --link=ubuntu16_s4:s4 108daf4f6324
  • 使用link选项建立的容器所链接的主机需要在运行状态
  • 使用link选项建立的容器运行时需要所链接的容器也必须是运行状态
  • 使用link选项链接的主机ip不需要固定,因为每次新建容器都会检查所链接容器的ip,在/etc/hosts里生成新的alias 名称对应的ip

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !

...

...

00:00
00:00