08-Docker-网络管理-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Docker 在网络管理这块提供了多种的网络选择方式他们分别是桥接网络
、主机网络
、覆盖网络
、MACLAN 网络
、无桥接网络
、自定义网络
。
1-无桥接网络None Network
当使用无桥接网络时容器不会分配 IP 地址也不会连接到主机网络。这对于特殊应用或需要完全手动配置网络设置的情况有用。在这个容器下除了lo
本地环回网络不会有其他的网卡一些对安全性比较高并且不需要联网的应用可以使用none network
网络。
一般来说使用none network
的情况并不多特殊应用或需要完全手动配置网络设置的情况有用。
2-主机网络Host Network
使用主机网络时容器与主机共享网络命名空间它们使用主机的网络堆栈不需要 NAT网络地址转换。这可以提高容器访问网络资源的性能但可能会引入一些安全风险因为容器共享主机的网络栈。
使用host network
需要考虑端口冲突问题有些已经host
上已经使用的端口就无法再使用了。
3-桥接网络Bridge Network
桥接网络是 Docker 中最常用的网络类型。在桥接网络中每个容器分配一个唯一的 IP 地址容器可以相互通信也可以通过主机进行外部网络通信。这是默认的网络类型。
我们通过如下命令可以看到桥接网络的相关设置
docker network inspect bridge
可以看到桥接网络的子网是172.17.0.0/16
容器分配的 IP 有172.17.0.3
、172.17.0.4
容器之间可以相互通信。
通过brctl
可以管理 Linux 的桥接设备centos
中下载方式与使用方式如下
#下载方式
sudo yum install bridge-utils # 对于 CentOS 6
sudo dnf install bridge-utils # 对于 CentOS 8 或 Fedora
#显示桥接设备
brctl show
可以看到容器中网卡的一端是挂载在桥接网卡docker0
上的通过这种形式实现网络链接的目的。
4-用户定义网络Custom Network
我们可以根据业务需求自己定义相关的网络docker
提供了三种用户定义网络驱动它们分别是bridge
、overlay
、macvlan
。其中overlay
、macvlan
用于创建跨主机的网络。
我们可以使用如下命令来创建一个自定义网络其子网为 192.168.0.0/24
网关为192.168.0.1
容器网络名为net_2
。
docker network create --subnet 192.168.0.0/24 --gateway 192.168.0.1 --driver bridge net_2
继而使用net_2网络创建两个新的容器,创建容器命令如下
docker run -it --network=net_2 --name=ub1 ubuntu /bin/bash
docker run -it --network=net_2 --name=ub2 ubuntu /bin/bash
在新的容器中安装网络查看及ping命令可以获取如下网络信息
apt-get install -y net-tools
apt-get install -y iputils-ping
彼此之间可以ping通实现自定义网络的通信。
使用docker ps
可以看到使用系统自定义的桥接网络容器700b
进入容器后发现他使用的是172.17.0.0/12网段。
若想使得桥接网络与自定义网络容器之间可以通信除了关注防火墙路由转发之外还需要使用如下命令
docker network connect net_2 700b
此时再进入容器会发现容器中多了一个网卡并且可以与不同网段之间容器进行通信。
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |