docker容器间互连
可以使用link命令,例如下面这个例子
//先启动一个tomcat容器
docker run -it --name="tomcat01" tomcat /bin/bash
//用第二个容器连接第一个容器
docker run -it --name="tomcat02" --link tomcat01 tomcat
//查看是否连接成功
docker exec -it tomcat02 ping tomcat01
连接成功可以看到终端打印出的信息,原理就是在tomcat02的容器的/etc/hosts文件下加上了tomcat01的名称和ip解析,但是tomcat01的hosts文件下没有tomcat02的名称和解析,所有tomcat01无法ping通tomcat02
自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
如果不加--subnet和--gateway的话docker会自动分配一个网段和网关
docker network connect mynet tomcat01
这样可以把tomcat01放在mynet网络下,同理可以把tomcat02也放在mynet下面,这样两个容器也可以相互ping通
docker有四种网络模式
host模式:容器和宿主机共享Network namespace。
container模式:容器和另外一个容器共享Network namespace
none模式:容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
bridge:桥接模式,默认是该模式