Gcloud容器服务 - Docker ps -a命令显示其他用户的容器

时间:2018-01-05 16:38:57

标签: docker google-compute-engine

我第一次尝试GCE,我有一个laradock + Laravel应用程序。我设置了一个VM n1-standard-1 (1 vCPU, 3.75 GB memory)并添加了一个小的永久磁盘。我git clone我的回购并做了docker-compose up(做了一些像env变量之类的设置等。

现在当我docker ps -a看到所有容器时。我看到很多容器。他们中的大多数都有随机用户的名字!

正在运行的是我的。其他一切我都不知道。

以下是截图: enter image description here

发生了什么事!我的VM不是私有的吗?

2 个答案:

答案 0 :(得分:1)

您的虚拟机确实是私有的,您称之为"随机用户名"如果您不自己提供图像,则只是docker生成的随机名称,用于标识图像。每次运行容器时都会给出一个随机名称,除非您自己提供。他们使用列表中的随机形容词+着名科学家或工程师的名字here you can see the code on Github。它们在那里因为它们比人类的十六进制容器ID更容易记住。

该代码还有一个有趣的复活节彩蛋:

func GetRandomName(retry int) string {
begin:
    name := fmt.Sprintf("%s_%s", left[rand.Intn(len(left))], right[rand.Intn(len(right))])
    if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
        goto begin
    }

此外,这些容器是由您生成的。每次运行docker-compose时,你都会启动所有容器,然后停止它们。请注意,显示的状态为"退出"对于他们所有人。您还可以看到退出代码以查看进程是否成功完成。从docker-compose CLI帮助:

The `docker-compose up` command aggregates the output of each container. When
the command exits, all containers are stopped. Running `docker-compose up -d`
starts the containers in the background and leaves them running.

如果您只是docker ps -a而不是docker ps,那么您只会注意到此时正在运行的容器。标志-a代表 all 并列出您运行的所有内容。

答案 1 :(得分:0)

这不是其他用户容器。由于您使用docker ps -a(-a)标志,因此会显示所有容器。此外,还会显示不再运行的容器,它们不会被删除,您可以看到它们。