为什么docker ps -a的名称列总是不同的

时间:2018-01-28 07:16:28

标签: docker docker-image

刚刚和码头玩耍!!

Ran ps命令-a选项

docker run -a
C:\Users\sarkan1>docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
3d6db385321c        busybox:1.24        "sleep 1000"        26 seconds ago      Up 24 seconds                                   lucid_ramanujan
e6acd65398b2        hello-world         "/hello"            43 minutes ago      Exited (0) 43 minutes ago                       nifty_brattain
c5576137580d        hello-world         "/hello"            4 days ago          Exited (0) 4 days ago                           dreamy_aryabhata
2594fbf1fa82        hello-world         "/hello"            4 days ago          Exited (0) 4 days ago                           nostalgic_hopper
c0102bc64c45        hello-world         "/hello"            4 days ago          Exited (0) 4 days ago                           vibrant_khorana

c4af79ea96e9 hello-world“/ hello”4天前退出(0)4天前cranky_heyrovsky

问题:

  1. 为什么我在名称列中的值总是不同?我想我跑了同样的容器!!

  2. Whats命令栏? hello(/ hello)之前的斜杠是否有任何意义?

  3. 提前感谢大家!!

    Nilotpal

2 个答案:

答案 0 :(得分:8)

除非您启动指定其名称(docker run --name)的容器,否则docker会为您生成一个容器 这比使用其ID引用所述容器更容易。

然后,您可以使用其(生成的)名称生成docker命令。

详情请见" How does Docker generate default container names?"。
(以及源代码:moby/moby pkg/namesgenerator/names-generator.go

命令列是容器执行的完整命令:一旦此命令停止,容器就会停止 该命令在docker镜像中指定,并且是:

的组合

(参见" difference between cmd and entrypoint in dockefile")

答案 1 :(得分:0)

基本上它们是随机容器名称生成的!!名称的左侧和右侧部分是硬编码的,可以在

中找到

https://github.com/moby/moby/blob/master/pkg/namesgenerator/names-generator.go

如果在创建新的docker容器时未提供默认名称,则Docker引擎会生成它。