我知道docker有一个容器名称和一个容器ID。据我所知,我们可以在所有使用容器ID的地方使用容器名称。如果我没有记错的话,两者对于一个容器都是唯一的。那么,为什么docker维护两个不同的字段来标识容器?容器名称不够吗?
答案 0 :(得分:0)
在系统的整个生命周期中,容器ID应该是唯一的,尽管随着时间的流逝,您可能会拥有许多同名的容器。
考虑:
webserver
的容器。webserver
容器。webserver
容器(也许您正在升级软件,或者从其他基础构建了新映像,或者您只是拆除并重新创建了docker-compose应用等) 现在,您的系统上在不同时间有两个名为webserver
的容器。它们实际上是同一个容器吗?不,当然不是。因此,我们看到名称不是唯一的。
另一方面,两种情况下的容器ID都不相同。这意味着,如果我们查看系统日志或审计数据,尽管它们具有相同的名称,但我们可以区分这两个不同的容器的活动。
答案 1 :(得分:-1)
容器ID是自动生成的,而容器名称是用户可以定义的,就像友好的表示形式。
如果您不从外部提供名称,则docker cli会为容器选择两个字典名称的串联。
您可以使用--name标志来命名容器,例如:
$ docker run -d -P --name web training/webapp python app.py
容器名称的另一个有用方面是要建立链接,Docker依赖于您的容器名称。该命名提供了两个有用的功能: