我在 Docker 中通过连接两个容器,但删除其中一个后,尝试再次连接它们时的处理备忘录

启动的容器

    1. 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:容器连接

广告
将在 10 秒后关闭
bannerAds