我第一次尝试GCE,我有一个laradock + Laravel应用程序。我设置了一个VM n1-standard-1 (1 vCPU, 3.75 GB memory)
并添加了一个小的永久磁盘。我git clone
我的回购并做了docker-compose up
(做了一些像env变量之类的设置等。
现在当我docker ps -a
看到所有容器时。我看到很多容器。他们中的大多数都有随机用户的名字!
正在运行的是我的。其他一切我都不知道。
发生了什么事!我的VM不是私有的吗?
答案 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)标志,因此会显示所有容器。此外,还会显示不再运行的容器,它们不会被删除,您可以看到它们。