- 重点掌握">重点掌握
- 网络驱动模式
- 网络管理命令">网络管理命令
- docker network ls 查看网络">docker network ls 查看网络
- docker network create 创建网络">docker network create 创建网络
- docker network rm 网络删除">docker network rm 网络删除
- docker network inspect 查看网络详细信息">docker network inspect 查看网络详细信息
- docker run –network 使用网络">docker run –network 使用网络
- docker network connect/disconnect 网络连接与断开">docker network connect/disconnect 网络连接与断开
- 网络模式">网络模式
- bridge 网络模式(一)">bridge 网络模式(一)
- bridge 网络模式(二) – 端口映射">bridge 网络模式(二) – 端口映射
- host 网络模式">host 网络模式
- 特殊host 网络模式(Container网络模式)">特殊host 网络模式(Container网络模式)
- none 网络模式">none 网络模式
- overlay 网络模式(一)">overlay 网络模式(一)
- overlay 网络模式(二)- 了解TCP/IP协议栈">overlay 网络模式(二)- 了解TCP/IP协议栈
- overlay 网络模式(三)- 实现原理">overlay 网络模式(三)- 实现原理
- macvlan 网络模式">macvlan 网络模式
重点掌握
•bridge网络、host网络、Container网络模式的原理和使用(应用得较多,且host网络性能最优)。 •docker network命令的使用 了解: •none网络的效果 •overlay网络、macvlan网络的原理。(使用起来难度较大)网络驱动模式
Docker有五种网络驱动模式 •bridge network 模式(网桥):默认的网络模式。类似虚拟机的nat模式 •host network 模式(主机):容器与宿主机之间的网络无隔离,即容器直接使用宿主机网络 •None network 模式:容器禁用所有网络。 •Overlay network 模式(覆盖网络): 利用VXLAN实现的bridge模式 •Macvlan network 模式:容器具备Mac地址,使其显示为网络上的物理设备网络管理命令
docker network ls 查看网络
作用:
查看已经建立的网络对象
命令格式:
docker network ls [OPTIONS]
命令参数(OPTIONS):
-f, --filter filter 过滤条件(如 'driver=bridge’)
--format string 格式化打印结果
--no-trunc 不缩略显示
-q, --quiet 只显示网络对象的ID
注意:
默认情况下,docker安装完成后,会自动创建bridge、host、none三种网络驱动
命令演示
docker network ls
docker network ls --no-trunc
docker network ls -f 'driver=host'
docker network create 创建网络
作用:
创建新的网络对象
命令格式:
docker network create [OPTIONS] NETWORK
命令参数(OPTIONS):
-d, --driver string 指定网络的驱动(默认 "bridge")
--subnet strings 指定子网网段(如192.168.0.0/16、172.88.0.0/24)
--ip-range strings 执行容器的IP范围,格式同subnet参数
--gateway strings 子网的IPv4 or IPv6网关,如(192.168.0.1)
注意:
host和none模式网络只能存在一个
docker自带的overlay 网络创建依赖于docker swarm(集群负载均衡)服务
192.168.0.0/16 等于 192.168.0.0~192.168.255.255 192.168.8.0/24
172.88.0.0/24 等于 172.88.0.0~172.88.0.255
命令演示
docker network create -d bridge my-bridge
docker network rm 网络删除
作用:
删除一个或多个网络
命令格式:
docker network rm NETWORK [NETWORK...]
命令参数(OPTIONS):
无
docker network inspect 查看网络详细信息
作用:
查看一个或多个网络的详细信息
命令格式:
docker network inspect [OPTIONS] NETWORK [NETWORK...]
或者 docker inspect [OPTIONS] NETWORK [NETWORK...]
命令参数(OPTIONS):
-f, --format string 根据format输出结果
docker run –network 使用网络
作用:
为启动的容器指定网络模式
命令格式:
docker run/create --network NETWORK
命令参数(OPTIONS):
无
注意:
默认情况下,docker创建或启动容器时,会默认使用名为bridge的网络
docker network connect/disconnect 网络连接与断开
作用:
将指定容器与指定网络进行连接或者断开连接
命令格式:
docker network connect [OPTIONS] NETWORK CONTAINER
docker network disconnect [OPTIONS] NETWORK CONTAINER
命令参数(OPTIONS):
-f, --force 强制断开连接(用于disconnect)
网络模式
bridge 网络模式(一)
特点: •宿主机上需要单独的bridge网卡,如默认docker默认创建的docker0。 •容器之间、容器与主机之间的网络通信,是借助为每一个容器生成的一对veth pair虚拟网络设备对,进行通信的。一个在容器上,另一个在宿主机上。 •每创建一个基于bridge网络的容器,都会自动在宿主机上创建一个veth**虚拟网络设备。 •外部无法直接访问容器。需要建立端口映射才能访问。 •容器借由veth虚拟设备通过如docker0这种bridge网络设备进行通信。 •每一容器具有单独的IPbridge 网络模式(二) – 端口映射
作用:
启动的容器时,为容器进行端口映射
命令格式:
docker run/create -P …
或者 docker run/create –p …
命令参数(OPTIONS):
-P, --publish-all 将容器内部所有暴露端口进行随机映射
-p, --publish list 手动指定端口映射
注意:
-p [HOST_IP]:[HOST_PORT]:CONTAINER_PORT
如:-p ::80 将容器的80端口随机(端口)映射到宿主机任意IP
-p :8000:6379 将容器的6379端口映射到宿主机任意IP的8000端口
-p 192.168.5.1::3306 将容器的3306端口随机(端口)映射到宿主机的192.168.5.1IP上
host 网络模式
特点: •容器完全共享宿主机的网络。网络没有隔离。宿主机的网络就是容器的网络。 •容器、主机上的应用所使用的端口不能重复。例如:如果宿主机已经占用了8090端口,那么任何一个host模式的容器都不可以使用8090端口了;反之同理。 •外部可以直接访问容器,不需要端口映射。 •容器的IP就是宿主机的IP特殊host 网络模式(Container网络模式)
•Container网络模式,其实就是容器共享其他容器的网络。 •相当于该容器,,在网络层面上,将其他容器作为“主机”。它们之间的网络没有隔离。 •这些容器之间的特性同host模式。 使用方法:Docker run/create –network container:CONTAINER …