我在 Docker 中通过连接两个容器,但删除其中一个后,尝试再次连接它们时的处理备忘录
启动的容器
-
- CentOS Scala容器
- MySQL
使用以下命令分别启动它们:
从CentOS侧查看MySQL容器的感觉是这样的。
# MySQLコンテナ
docker run --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
# Scalaコンテナ
docker run -it -p 80:8080 --link mysql-container:mysql-container --name centos-scala takashioshikawa/scala-2.11.7
从centos-scala容器中
Chinese: 从 centos-scala 容器中
mysql -u root -h mysql-container -p
假设您可以连接到mysql-container中的mysql,
删除mysql容器并再次使用相同的命令在centos-scala上运行,并尝试连接MySQL。
一旦停止两个容器,只需使用rm命令删除mysql容器。
docker rm mysql-container
然后创建相同的容器,并尝试从centos-container连接。
# MySQLコンテナ再作成
docker run --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
# Scalaコンテナ起動
docker start centos-scala
# Scalaコンテナコンソール接続
docker attach centos-scala
当尝试从centos-scala连接MySQL时,出现了类似于“我不知道mysql-container”这样的消息,表明MySQL容器未被识别。
将mysql-container在centos-scala中重新识别。
Docker的解决方案可能并不理想,但我们通过以下方法解决了该问题
更改centos-scala侧的hosts文件,使其能够识别mysql-container。
进行 or
顺序 or
步骤
1. 查找mysql容器的信息
docker inspect mysql-container
我认为会有很多信息涌现出来。
下記の通りです:在中文中,您应该关注的信息是
"Hostname": "1315a21875bc(ここの値は変わります)"
"IPAddress": "172.17.0.2(ここの値は変わります)"
主机名和IP地址的值非常重要。
在CentOS-Scala中编辑/etc/hosts文件。
我会把mysql-container的信息写入到hosts中。
172.17.0.3 ef1f1942c80f
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 1315a21875bc mysql-container # ここを追記
IP地址 主机名 容器名称
描述
mysql -u root -h mysql-container -p
我們現在能夠通過網絡相互連接了。
请提供以下的中文原文。
Docker:容器连接