Docker

Docker高级网络功能

2019-05-25  本文已影响1人  王勇1024

网络架构

Docker启动时会在主机上自动创建一个docker0虚拟网桥,它会在挂载其上的接口之间进行网络转发,如下图所示:

Docker网络

同时,Docker随机分配一个本地未被占用的私有网段中的一个地址给docker0接口。比如典型的172.17.42.1,掩码为255.255.255.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。

当创建一个Docker容器的时候,同时会创建一个veth pair接口(veth pair,是一个成对的端口,所有从这对端口一 端进入的数据包都将从另一端出来,反之也是一样)。

这对veth pair一端放在容器内,名称为eth0,另一端在本地并被挂载到docker0网桥,名称以veth开头(如上图所示)。

通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。如此一来,Docker就在主机和所有容器之间创建了一个虚拟共享网络。

配置参数

下面是Docker网络相关的命令参数。

下面这些参数只能在执行 docker run时使用,因为它们是针对容器特性内容:

网络相关命令

Docker网络相关命令都作为network的子命令出现。

$ docker network COMMAND --help

Usage:  docker network COMMAND

Manage networks

Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

1.列出网络
命令格式为:docker network ls [OPTIONS]
支持的参数包括:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
93462b021a93        bridge              bridge              local
b960b18f0b3e        host                host                local
f92adf7c5957        none                null                local
  1. 创建网络
    命令格式:docker network create [OPTIONS] NETWORK
    支持的参数包括:

3.删除网络
命令格式:docker network rm NETWORK [NETWORK ...]

4.接入容器
将一个容器连接到一个已存在的网络上。
命令格式:docker network connect [OPTIONS] NETWORK CONTAINER
支持的参数包括:

  1. 卸载容器
    将一个连接到网络上的容器从网络上移除。
    命令格式:docker network disconnect [OPTIONS] NETWORK CONTAINER
    支持的参数:

6.查看网络信息
查看已存在网络的具体信息。
命令格式:docker network inspect [OPTIONS] NETWORK [NETWORK ...]
支持的参数:

上一篇 下一篇

猜你喜欢

热点阅读