这个过程验证如下: 可以Ubuntu中安装bridge-utils以进行网桥管理 # whoami at iamwho

时间:2021-10-04 05:23:01

查抄API是否一致

使用sudo docker version检察

这个过程验证如下: 可以Ubuntu中安装bridge-utils以进行网桥管理 # whoami at iamwho

这个过程验证如下: 可以Ubuntu中安装bridge-utils以进行网桥管理 # whoami at iamwho

改削处事器端配置

改削Docker守护进程启动选项

-H tcp://host:port unix:///path/to/socket, fd://* or fd://socketfd

守护进程默认配置:

-H unix:///var/run/docker.sock

Ubuntu(192.168.56.102)处事器端/etc/default/docker

DOCKER_OPTS=" --label name=server -H tcp://0.0.0.0:2375 "

全0代表绑定自身的端口,凡是是2375,改削完成要重启处事

sudo service docker restart ps -ef | grep # 检察配置是否生效 客户端访谒

CentOS 客户端访谒curl :2375/info

这个过程验证如下: 可以Ubuntu中安装bridge-utils以进行网桥管理 # whoami at iamwho

从返回的json中可以看到"Labels":["name=server"]

接着在客户端使用docker访谒处事器的守护进程

# whoami at localhost.localdomain in [~] $ docker -H tcp://192.168.56.102:2375 info Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 1 Server Version: 17.12.0-ce 。。。。。。 Labels: name=server Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false WARNING: No swap limit support

可以看到同样有着name=server的字样

客户端环境变量简化操纵

声明一个环境变量:

export DOCKER_HOST="tcp://192.168.56.102:2375"

以后只要环境变量中存在着非空DOCKER_HOST变量时,运行的docker命令城市去访谒运程的守护进程,在不需要与长途进行连接时,只需要将DOCKER_HOST置空即可

export DOCKER_HOST="" 处事端守护进程接收多访谒

处事端在接受客户端访谒时,自身可能不能使用docker命令,需要进一步设置自身接受多访谒

DOCKER_OPTS=" --label name=server -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" Docker容器的网络根本

使用ifconfig检察网络状态时,会发明多一个网络docker0,而docker守护进程正是通过该网络实现网络连接如下:

# whoami at localhost.localdomain in [~] $ ifconfig docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet x.x.x.x netmask 255.255.0.0 broadcast x.x.x.x ether x:x:x:x:x:x txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

固然要在启动处事之后才华看到网络docker0

docker0虚拟网桥

这个过程验证如下: 可以Ubuntu中安装bridge-utils以进行网桥管理 # whoami at iamwho

凡是网桥是一个纯数据链路层的观点,然而在Linux中虚拟网却不是这样的,它的特点如下:

Linux虚拟网桥的特点:

可以设置IP地点

相当于拥有一个隐藏的虚拟网卡

这样Linux虚拟网桥就跨越到了第三层了。Linux虚拟网桥是通用网络设备抽象的一种,通过IP可以查找得到它,自己就成为一张网卡(虚拟的)。

dockerO的地点划分

IP: 172.17.x.x

子网掩码:255.255.0.0

MAC: 02:42:ac:ll:00:00 到 02:42:ac:ll:ff:ff 总共供给了65534个地点

在一个容器启动时,docker0需要创建网络的两端如下:

这个过程验证如下: 可以Ubuntu中安装bridge-utils以进行网桥管理 # whoami at iamwho

一端是在容器的网络设备,一端则是在运行容器的宿主机器上。这个过程验证如下:

可以Ubuntu中安置bridge-utils以进行网桥打点

# whoami at iamwho in [~] $ brctl Usage: brctl [commands] commands: addbr <bridge> add bridge delbr <bridge> delete bridge addif <bridge> <device> add interface to bridge delif <bridge> <device> delete interface from bridge hairpin <bridge> <port> {on|off} turn hairpin on/off setageing <bridge> <time> set ageing time setbridgeprio <bridge> <prio> set bridge priority setfd <bridge> <time> set bridge forward delay sethello <bridge> <time> set hello time setmaxage <bridge> <time> set max message age setpathcost <bridge> <port> <cost> set path cost setportprio <bridge> <port> <prio> set port priority show [ <bridge> ] show a list of bridges showmacs <bridge> show a list of mac addrs showstp <bridge> show bridge stp info stp <bridge> {on|off} turn stp on/off

使用brctl show检察docker0如下:

# whoami at iamwho in [~] $ sudo brctl show bridge name bridge id STP enabled interfaces docker0 8000.0242485afc84 no

运行一个容器:

docker run -it --name=nwt0 ubuntu /bin/bash