在學習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