容器互联
官方强烈建议,放弃古老的 --link
方式,故下文不介绍该方式
虚拟 IP 方式(不建议)
略
link 方式(不建议)
略
bridge 网络方式(建议)
创建一个网络 docker network create -d bridge lnmpr-net
移除一个网络 docker network rm lnmpr-net
查看所有网络 docker network ls
容器离开自定义网络 docker network disconnect lnmpr-net nginx
查看指定网络 docker network inspect lnmpr-net
,内容如下
[
{
"Name": "lnmpr-net",
"Id": "625377cf57851373e929f572dd8901727d842240f0b4c61b284b9bba6893dd30",
"Created": "2021-08-23T06:23:30.844869Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
运行相应容器,并加入 lnmpr-net
网络
# 运行 MySQL 并加入网络
docker run --name mysql_3 -itdp 10003:3306 -e MYSQL_ROOT_PASSWORD=123456 --mount type=bind,source=D:/Docker/MySQL,target=/var/lib/mysql --network lnmpr-net mysql:8.0.26
# 运行 Redis 并加入网络
docker run --name redis -dp 20000:6379 --mount type=bind,source=D:/Docker/Redis,target=/data --network lnmpr-net redis:6 redis-server /data/docker_redis.conf --appendonly yes
查看 lnmpr-net
网络,docker network inspect lnmpr-net
,内容如下
[
{
"Name": "lnmpr-net",
"Id": "625377cf57851373e929f572dd8901727d842240f0b4c61b284b9bba6893dd30",
"Created": "2021-08-23T06:23:30.844869Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"05c5e4f414e1a64e4ff11c484d7d218450a3acef444c42e84bf88046753ee77a": {
"Name": "redis",
"EndpointID": "419c3c7dd626e0bce41d5ac735514138530f64f4d58eeb86830ab4deb47a5b44",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.19.0.3/16",
"IPv6Address": ""
},
"ba89624fcb22a0300686cf3f229aa38be367b599a2c05b4096fa5f608e51700e": {
"Name": "mysql_3",
"EndpointID": "0488c679bf7b5534a478db716c53475f3b72d35add58c404b708d42fa35bd2e3",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
测试是否能互通,进入相应的容器,使用 ping
命令即可,若提示命令没找到,执行安装语句 apt-get update && apt install iputils-ping
将运行中的容器连接到已经存在的用户自定义网桥
docker network connect my-net my-nginx
断开容器到用户自定义网络的连接
docker network disconnect my-net my-nginx