#查看容器的network
docker inspect mysql-master
#查看容器的network,最后20行
docker inspect mysql-slave | tail -n 20
可以从上看出,没有设置的容器network,默认确实是bridge。
mysql-master的ip:172.17.0.2
mysql-slave的ip:172.17.0.3
思考一下:
那么如果我把mysql-slave容器停掉,启动另一台容器ip会发送什么样的变换呢?
实践:
#停掉原来的服务
docker stop mysql-slave
docker ps
docker images
#启动一台新服务
docker run -p 3309:3306 --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
#查看网络
docker inspect mysql-slave2 | tail -n 20
ip会重新分配,那么如果我们使用容器内的ip进行通信,一旦出现容器挂了的情况,ip会发生变更,就会有问题。
# 查看启动的容器
docker ps
# 查看宿主机网络
ifconfig
# 进入容器查看网络
docker exec -it 容器名 /bin/bash
# 查看ip,veth后面的码值就会和eth0对应上
ifconfig
docker network inspect bridge
docker network create my_test
# 查看我之前创建的network,默认是bridge
docker network inspect my_test