docker link
docker link
由于docker container 之中的 ip在为创建之前是未知的,不利于服务与服务之间的配置连接,所以docker 提供了一种办法来解决这个问题,
可以通过 docker name 之间的link来解决
创建test2并link到test1
1 | docker run -d --name test2 --link test1 busybox /bin/sh -c "while true; do sleep 3600; done" |
进入到test2容器
1 | docker exec -it test2 /bin/sh |
这种方式的优点是:
假如test1有一个数据库,我们可以在test2容器中通过
1 |
|
创建bridge
1 | docker network create -d bridge my-bridge |
创建test3并指定network到my-bridge
如果不指定network默认连接是docker0
1 | docker run -d --name test3 --network my-bridge busybox /bin/sh -c "while true; do sleep 3600; done" |
查看test3 container network信息
1 | docker network inspect <my-bridge id> |
bridge连接
1 | docker network connect my-bridge test2 |
1 | docker network inspect bridge |
我们可以看到bridge和my-bridge的container中都包含了test2
进入到test2容器中
1 | docker exec -it test2 /bin/sh |
可以发现在test2容器中可以ping通test3但是不能ping test1, 实际上docker在用户自己创建的bridge中做了一层link,所以test2和test3容器可以相互ping 通对方
把test1也加入到my-bridge中
1 | docker network connect my-bridge test1 |
此时test1也可以ping通了