我怎样才能确保始终连接到相同的docker集装箱?

我有一个真正理解这个小问题。 当我在Docker中启动3个容器时,他们得到3个不同的IP地址,这些IP地址是按顺序分配的,我可以从其他容器中解决它们,一切正常。
但是,当我在这三个之前启动一个不同的容器时,这三个获得不同的IP地址,并且整个设置进入地狱。

我一直在困扰Google很长一段时间,但我似乎找不到一个合适的(也不是太复杂)的解决scheme,有一个稳定的方式来连接到某个容器。 这并不是我想自己分配IP,只是告诉docker主机,就像“每次启动容器X时都将IP 172.17.0.X分配给它”
必须有某种方式来启动容器的顺序并不重要,不能每隔一次重新启动容器就必须更改设置。

所以这里有一些帮助会很好?
我可以通过某种方式将IP分配给容器,或者给予某种别名,以便从另一个容器中处理。

我认为你应该在你的Docker容器中使用hostname而不是IP地址。 而当你运行Docker容器时,你可以使用--link之间的链接。 请参阅https://docs.docker.com/v1.8/userguide/dockerlinks/#communication-across-links

在新版本中,很容易将容器连接在同一个networking中。 请参阅https://docs.docker.com/engine/userguide/networking/dockernetworks/

从容器通过ip连接到另一个容器,它不是“docker路”,所以真正正确的方式是使用 – --link作为张贴--link 儿子 。
举个例子:
docker run --name=db image1 docker run --name=app --link outernamedb:internalname image2 ,然后在app容器内使用internalname:3306

但是,如果你尝试 db 之前启动app 那么这将不起作用,因为这种情况下Docker高于1.11是合法的。
从docker官方docker你可以使用--ip标志来设置确切的IP容器docker run --name=db --ip 172.17.0.90 image1 docker run --name=app --ip 172.17.0.91 image2 ,然后在app容器使用172.17.0.90:3306

使用Dockernetworking 。 链接正在被弃用,IP地址的东西是一个疯狂:)

 $ docker network create my-net $ docker run -d --net my-net --name container1 image1 $ docker run -d --net my-net --name container2 image2 $ docker exec -it container1 sh # ping container2 PING container2 (172.21.0.3): 56 data bytes 64 bytes from 172.21.0.3: seq=0 ttl=64 time=0.073 ms ... 

你可以find这个职位的一些信息

如何在docker-compose中设置DNS容器?

我希望这有助于;)