【问题标题】:How to open root@ad02e79cfb5b directory in windows terminal?如何在 Windows 终端中打开 root@ad02e79cfb5b 目录?
【发布时间】: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


【解决方案1】:

当您使用-it 标志运行docker run 时,它将运行容器并为您提供一个shell。 所以你看到的 root@ad02e79cfb5b:/# 是 docker 容器内的提示符(root 是用户,ad02e79cfb5b 是主机名,/ 表示你在根文件夹中)。

要返回它,您首先需要知道容器是否仍在运行。为了实现这个运行docker ps -a(不是-a标志很重要,因为没有它你只会看到正在运行的容器而不是停止的容器)。

如果您运行的容器仍在运行,请记下 id 并运行 docker exec -it <container-id> /bin/bash 以获取 shell。

如果容器已停止,那么我建议将其删除 docker rm <container-id> 并重新运行它 (docker run -it ...)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2020-12-19
    • 2020-12-09
    • 2021-10-14
    相关资源
    最近更新 更多