【发布时间】:2021-06-01 14:57:04
【问题描述】:
我已经安装了 Linux 子系统和 windows 终端。我使用 docker 运行图像(命令形式为 docker run -it ......其中“......”指的是语法的进一步部分)。
命令运行完成后,我的当前目录(PS C:\Users\krs>)更改为 root@ad02e79cfb5b,我在那里看到了我的项目目录(比如 ProjectX)(它以绿色突出显示)以及其他lib,tmp,bin 等目录(类似于 linux 根文件夹中的目录)。
但是我不知道 root@ad02e79cfb5b:/# 的位置。我以为它可能是根目录,但是当我打开根目录时,会有 lib、tmp、bin 等文件夹,但没有 ProjectX。我也无法使用命令 cd root@ad02e79cfb5b:/# 打开 root@ad02e79cfb5b:/#。
root@ad02e79cfb5b:/# 位于何处?关闭后如何再次访问?
【问题讨论】:
-
当您运行带有
-it标志的docker run时,它将运行容器并为您提供一个shell。因此,您看到的root@ad02e79cfb5b:/#是 docker 容器内的提示符(root是用户,ad02e79cfb5b是主机名,/表示您在根文件夹中)。如果容器仍在运行,则只需docker exec -it <container-id> /bin/bash即可返回它,如果容器停止,则再次运行它。 -
@MatteoZanoni 感谢它的工作。你可以把它写成答案。我会接受的。另外如何知道主机名?幸运的是我注意到了 ad02e79cfb5b 但假设我不会注意到它我是怎么知道这个字母数字序列的?
-
听起来你的 Dockerfile 缺少
CMD,它指定了主容器应该运行的默认命令。你能提供一个minimal reproducible example,包括你用来启动容器的Dockerfile和docker run命令吗? -
@MatteoZanoni 也可以在哪里了解 docker 以便我了解这些事情?大多数来源都没有提供这些细节。
-
请注意,如果您提供
--name name1标志,那么您可以运行所有 docker 命令传递容器名称而不是容器 ID(因为它更容易记住)。例如:docker exec -it name1 /bin/bash
标签: docker root windows-subsystem-for-linux