Gcloud Container Service-Docker ps-a命令显示其他用户';集装箱

Gcloud Container Service-Docker ps-a命令显示其他用户';集装箱,docker,google-compute-engine,Docker,Google Compute Engine,我第一次尝试GCE,我有一个laradock+Laravel应用程序。我设置了一个VMn1-standard-1(1个vCPU,3.75 GB内存),并添加了一个小的永久磁盘。我git clone我的repo,做了一个docker组合(在做了一些设置之后,比如env variable等) 现在当我做docker ps-a查看所有的容器时,我看到了很多容器,其中大多数都有随机的用户名 正在运行的是我的,其他的我都不知道 以下是一个屏幕截图: 发生了什么事!我的虚拟机不是私有的吗?不是其他用户容器

我第一次尝试GCE,我有一个laradock+Laravel应用程序。我设置了一个VM
n1-standard-1(1个vCPU,3.75 GB内存)
,并添加了一个小的永久磁盘。我
git clone
我的repo,做了一个
docker组合
(在做了一些设置之后,比如env variable等)

现在当我做
docker ps-a
查看所有的容器时,我看到了很多容器,其中大多数都有随机的用户名

正在运行的是我的,其他的我都不知道

以下是一个屏幕截图:


发生了什么事!我的虚拟机不是私有的吗?

不是其他用户容器。因为您使用的是
docker ps-a
(-a)标志,所有容器都会显示出来。不再运行的容器也会显示出来,它们不会被删除,您会看到它们。

您的虚拟机确实是私有的,您称之为“随机用户名”只是docker为标识图像而生成的随机名称(如果您自己不提供)。每次运行容器时,都会给出一个随机名称,除非您自己提供。它们使用列表中的随机形容词+著名科学家或工程师的名称。它们之所以存在,是因为它们比十六进制conta更容易记住一个人的身份证

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

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 up时,您都会启动所有容器,然后停止它们。请注意,显示的所有容器的状态都是“已退出”。此外,您还可以查看退出代码,以查看该过程是否成功完成。在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
而不是
docker ps-a
,您会注意到in只列出了此时正在运行的容器。标志-a代表所有并列出了您已运行的所有内容。

但它们是谁的?我没有做这些containers@notANerdDev“docker编写”docker运行为你。你可以提供你的docker compose文件以了解更多详细信息。我们的网站仍然是有线的…但我想你在docker compose文件中有一些问题。我在本地机器中使用了这个docker-compose.yml。它构建得很好。它没有创建这些容器。肯定是出了问题。我已经向Google Issue Trackers报告了。请注意这些容器在过去几个小时内是如何启动或停止的。这不是因为我的操作。其他用户必须执行他们自己的docker运行命令。@notANerdDev您为您的机器拍摄的图像是什么?我是指哪个操作系统?容器优化的操作系统64-10176.7.0 dev