Docker容器名称与容器ID

时间:2019-11-26 03:54:31

标签: docker

我知道docker有一个容器名称和一个容器ID。据我所知,我们可以在所有使用容器ID的地方使用容器名称。如果我没有记错的话,两者对于一个容器都是唯一的。那么,为什么docker维护两个不同的字段来标识容器?容器名称不够吗?

2 个答案:

答案 0 :(得分:0)

在系统的整个生命周期中,容器ID应该是唯一的,尽管随着时间的流逝,您可能会拥有许多同名的容器。

考虑:

  1. 您启动一个名为webserver的容器。
  2. 您破坏了webserver容器。
  3. 您创建了一个新的webserver容器(也许您正在升级软件,或者从其他基础构建了新映像,或者您只是拆除并重新创建了docker-compose应用等)

现在,您的系统上在不同时间有两个名为webserver的容器。它们实际上是同一个容器吗?不,当然不是。因此,我们看到名称不是唯一的。

另一方面,两种情况下的容器ID都不相同。这意味着,如果我们查看系统日志或审计数据,尽管它们具有相同的名称,但我们可以区分这两个不同的容器的活动。

答案 1 :(得分:-1)

容器ID是自动生成的,而容器名称是用户可以定义的,就像友好的表示形式。

如果您不从外部提供名称,则docker cli会为容器选择两个字典名称的串联。

您可以使用--name标志来命名容器,例如:

$ docker run -d -P --name web training/webapp python app.py

容器名称的另一个有用方面是要建立链接,Docker依赖于您的容器名称。该命名提供了两个有用的功能:

  1. 以一种使您更容易记住它们的方式命名执行特定功能的容器,例如命名包含Web应用程序Web的容器,可能很有用。
  2. 它为Docker提供了一个参考点,使其可以引用其他容器,例如,您可以指定将容器 web 链接到容器 db
  3. li>