Docker链接工作在一个主机上,但不是另一个

我有两个docker主机,一个用于生产,一个用于分段。 就我所知,它们是完全一样的。 他们运行相同的操作系统(Ubuntu)和相同的Docker版本。 我通过使用Docker中的链接function的Jenkins运行作业。

在升级过程中,这一切都可以完美地工作,但是在生产中,如果失败,则使用完全相同的命令。 他们都使用相同的registry。

这些命令(隐私稍微修改)

docker run --detach --name bymysql --env=MYSQL_ROOT_PASSWORD=password dockerdistro-staging:5000/mysql docker run --link=bymysql -v /home/jenkins/data:/data dockerdistro-staging:5000/custom-container /command/we/run 

使用暂存版本,它一切正常,但与生产版本我得到以下错误,由我们自己的代码,这是寻找一个名为bymysql的标准端口上的MySQL服务器生成。

 mysqladmin: connect to server at 'bymysql' failed error: 'Can't connect to MySQL server on 'bymysql' (111)' Check that mysqld is running on bymysql and that the port is 3306. 

鉴于它在分段工作正常,我认为这些命令是好的,并在configuration与主机有一些差异。 但我不知道什么会阻止链接function的工作。

神秘地,如果我手动运行生产框上的相同步骤,而不是通过jenkins,它也适用于生产!

docker版本的输出(两者相同)

 Client: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Wed Oct 26 22:01:48 2016 OS/Arch: linux/amd64 Server: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Wed Oct 26 22:01:48 2016 OS/Arch: linux/amd64 

dockernetworking检查的输出

  • 要旨