通过自定义网桥,实现容器互连。
转:Linux 网桥配置命令:brctl LINUX下的网络设置 ifconfig ,route,gateway(转)
Linux远程连接
(其中涉及的一点)Linux系统中是通过ssh服务实现的远程登录功能。默认ssh服务开启了22端口,而且当我们安装完系统时,这个服务已经安装,并且是开机启动的。所以不需要我们额外配置什么就能直接远程登录linux系统。ssh服务的配置文件为 /etc/ssh/sshd_config,你可以修改这个配置文件来实现你想要的ssh服务。比如你可以更改启动端口为36000.
因为是远程登录,所以你要登录的服务器一定会有一个IP或者主机名。 【使用密钥认证机制远程登录linux】 SSH服务支持一种安全认证机制,即密钥认证。所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。 ssh 的密钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。
通过自定义网桥
假设Host1:202.117.16.183 Host2:202.117.16.189
1.分别在Host1和Host2创建虚拟网桥
## create bridge on host1,2 respectively
host1-ubuntu$ sudo apt-get install bridge-utils
host1-ubuntu$ sudo brctl addbr br0
host2-ubuntu$ sudo brctl addbr br1
## set bridge port and IP GW
host1-ubuntu$ sudo ifconfig br0 202.117.16.183 netmask 255.255.255.0
host1-ubuntu$ sudo ifconfig addif br0 eth0
host1-ubuntu$ sudo route add default gw 202.117.16.1
sudo ifup br0
host2-ubuntu$ sudo ifconfig br1 202.117.16.189 netmask 255.255.255.0
host2-ubuntu$ sudo ifconfig addif br1 eth0
host2-ubuntu$ sudo route add default gw 202.117.16.1
sudo ifup br1
2.更改Docker配置自定义网桥并设置容器IP地址范围
## Host1
host1-ubuntu$ sudo vim /etc/default/docker
## add at last
DOCKER_OPS= -b=br0 --fixed-cidr=同主机网段ip
host1-ubuntu$ sudo service docker restart
host1-ubuntu$ sudo ps -ef | grep docker
root 16771 1 0 Jan12 ? 00:00:05 /usr/bin/docker daemon -b=br0
## Host2 as Host1
至此Host1上新建的容器可以直接ping到Host2上创建的容器
3.总结
优点:配置简单,不依赖第三方软件 缺点:容器与主机在同网段,需要小心划分容器ip地址;需要网段控制权,在生产环境中不易实现(保证整个网段可用,容器与主机同一网段);不容易控制;兼容性不佳。