1、自定义一个网络
- –driver bridge 桥接模式
- –subnet 192.168.10.0/24 子网
- –gateway 192.168.10.1 网关
- mynet 名称
[root@centos8 composetest]# docker network create --driver bridge --subnet 192.168.10.0/24 --gateway 192.168.10.1 mynet
0421a362dc33f4e7f1cf90e117c456f4ba049303c96210e9faff09d173dac940
[root@centos8 composetest]# docker network ls
NETWORK ID NAME DRIVER SCOPE
95c964c20427 bridge bridge local
9724db2f361a composetest_default bridge local
1e997b0707ef host host local
0421a362dc33 mynet bridge local
08c69e797fb6 none null local
查看自定义的网络
[root@centos8 composetest]# docker network inspect mynet
[
{
"Name": "mynet",
"Id": "0421a362dc33f4e7f1cf90e117c456f4ba049303c96210e9faff09d173dac940",
"Created": "2021-12-10T08:52:02.943281609+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.10.0/24",
"Gateway": "192.168.10.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
2、用自定义网络启动两个redis
[root@centos8 composetest]# docker run -d --name redis01 -P --net mynet redis:5.0.14
511253a30fb96f00ac7698148cc2ecbb340399857c5fb893c8dbafbc636bc898
[root@centos8 composetest]# docker run -d --name redis02 -P --net mynet redis:5.0.14
d35685cd7e5f5cf0f14e2ca6e17c77c823784de297f861ae6b047744b857adc8
[root@centos8 composetest]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d35685cd7e5f redis:5.0.14 "docker-entrypoint.s…" 37 seconds ago Up 35 seconds 0.0.0.0:49154->6379/tcp, :::49154->6379/tcp redis02
511253a30fb9 redis:5.0.14 "docker-entrypoint.s…" About a minute ago Up 43 seconds 0.0.0.0:49153->6379/tcp, :::49153->6379/tcp redis01
[root@centos8 composetest]# docker network inspect mynet
[
{
"Name": "mynet",
"Id": "0421a362dc33f4e7f1cf90e117c456f4ba049303c96210e9faff09d173dac940",
"Created": "2021-12-10T08:52:02.943281609+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.10.0/24",
"Gateway": "192.168.10.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"511253a30fb96f00ac7698148cc2ecbb340399857c5fb893c8dbafbc636bc898": {
"Name": "redis01",
"EndpointID": "0732d3a62e2942d892da7f4cdffbad813e44e6a5acf9cf24a52eb9c08850fba6",
"MacAddress": "02:42:c0:a8:0a:02",
"IPv4Address": "192.168.10.2/24",
"IPv6Address": ""
},
"d35685cd7e5f5cf0f14e2ca6e17c77c823784de297f861ae6b047744b857adc8": {
"Name": "redis02",
"EndpointID": "712c541524002edf7676a77baec0c40be65866328005e0a4cc4d0ed31dd4cf59",
"MacAddress": "02:42:c0:a8:0a:03",
"IPv4Address": "192.168.10.3/24",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
# 自定义的网络可以直接使用名称连接
[root@centos8 composetest]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d35685cd7e5f redis:5.0.14 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:49154->6379/tcp, :::49154->6379/tcp redis02
511253a30fb9 redis:5.0.14 "docker-entrypoint.s…" 7 minutes ago Up 6 minutes 0.0.0.0:49153->6379/tcp, :::49153->6379/tcp redis01
[root@centos8 composetest]# docker exec -it 511253a30fb9 /bin/bash
root@511253a30fb9:/data# redis-cli -h redis02
redis02:6379> ping
PONG
3、网络连通
连通容器 mysql01 和 mynet 网络
docker network connect mynet mysql01
4、指定容器的ip地址 --ip 192.168.10.101
docker run -d --name redis02 -P --net mynet --ip 192.168.10.101 redis:5.0.14 --notify-keyspace-events Ex --appendonly yes