在学习docker的时候,比方说我起了一个mysql的容器,再起一个需要使用mysql的容器,这个时候会为容器间通信而发愁
找了下资料,首先,docker的容器默认是在同一个网内,可以在进入容器后,用命令 cat /etc/hosts 来查看ip
也可以用命令来查看所有容器的ip
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
如果想自定义网络的话,可以使用network命令的(推荐)
1.创建一个新的网络
docker network create mynet
2.查看网络信息
docker network ls
3.创建容器时指定网络及别名
创建mysql容器:docker run -p:33306:3306 --network mynet --network-alias myMysql3 --name myMysql3 -v /Users/qiunan/docker_v/mysql/conf/:/etc/mysql/conf.d -v /Users/qiunan/docker_v/mysql/data/:/var/lib/mysql -v /Users/qiunan/docker_v/mysql/logs/:/logs/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
这里通过--network 指定使用mynet的网络,-network-alias指定这个mysql的网络别名为myMysql3
创建centos容器docker run -ti --network mynet --network-alias myCentos --name myCentos7 centos:7 /bin/bash
4.测试访问
在centos里ping myMysql3