gpt4 book ai didi

docker - 为什么docker-compose启动一个新的IP地址?

转载 作者:行者123 更新时间:2023-12-02 21:09:55 26 4
gpt4 key购买 nike

每当我启动一个由docker-compose组成的机器时,它都会以一个新的IP地址开始,我想知道以下几点:

  • 为什么?
  • 如何知道它已经使用Ip .0并跳转到.1然后是.2,依此类推?
  • 有没有办法说:嘿,不要从IP x移走吗?

  • 谢谢

    我希望您能回答原因,使它可以解释其他原因。请引用有关它的文档。谢谢

    最佳答案

    有关此方面的最佳文档,请参见技术细节。 docker中的联网是通过libnetwork实现的,而IP地址分配是由IPAM执行的。记录在:https://github.com/docker/libnetwork/blob/master/docs/ipam.md

    每个容器通过设计都会从网络池中获取一个新的IP地址,这是一个有用的设计。您不希望其他容器突然出现,并且您可以避免使用与以前连接的容器相同的IP地址。充其量可能导致错误,或者最坏的结果是恶意冒充容器。

    每当compose创建一个新容器时,即使是对现有镜像的较小更新或需要重新创建的容器属性的更改,它都会通过docker API来创建一个新容器,该新容器将通过IPAM从子网范围获取新IP地址的过程。

    最重要的是,这一切都不重要。如果您使用IP地址在应用之间进行通信,则您的应用可能尚未准备好使用容器。在容器之间,您应该至少使用DNS,并且最好使用诸如群集模式VIP或kubernetes服务之类的东西,它们可以更好地处理短期容器和滚动更新。 DNS结果的缓存属性很容易过时,指向不再运行的容器。无论您使用DNS还是VIP /服务,都由容器运行时/编排工具来处理,让您的应用程序解析服务的名称,而不是直接依赖IP地址。

    关于docker - 为什么docker-compose启动一个新的IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55220580/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com