【问题标题】:Strange output from Docker image/container?来自 Docker 映像/容器的奇怪输出?
【发布时间】:2018-01-19 17:31:23
【问题描述】:

我是 Docker 的新手,我正在尝试运行一个映像,如果这样做的话,我通常会“进入”映像“内部”,在那里我可以访问我在内部创建的不同目录。

但是,当我最近完成它时,我得到了以下输出:

top - 15:49:10 up 2:36, 0 users, load average: 0.65, 0.70, 0.71
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.9 us, 2.8 sy, 0.2 ni, 89.2 id, 1.8 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 3930660 total, 370676 free, 1749516 used, 1810468 buff/cache
KiB Swap: 4076540 total, 4076540 free, 0 used. 1550316 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36536 2968 2604 R 0.0 0.1 0:00.05 top -b -c

top - 15:49:13 up 2:36, 0 users, load average: 0.65, 0.70, 0.71
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.0 us, 2.6 sy, 0.0 ni, 94.2 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 3930660 total, 366860 free, 1753244 used, 1810556 buff/cache
KiB Swap: 4076540 total, 4076540 free, 0 used. 1546536 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36536 2968 2604 R 0.0 0.1 0:00.05 top -b -c^

来自以下 docker 命令:

sudo docker run -i -t ubuntu-latest

我在 ubuntu 16.04 上运行 docker 17.12。目前,如果我可以在不发布 dockerfile 的情况下收到解决方案,我会的,因为文件中存在某些信息。

任何反馈将不胜感激

【问题讨论】:

  • 您的实际问题是什么?如果您想在不进入容器“内部”的情况下运行容器,请添加 -d 标志。
  • 抱歉,我应该更清楚。上面的输出不是我想要的。我正在寻找 /bin/bash 代替
  • 试试这个:sudo docker run -i -t ubuntu-latest /bin/bash 其实这就是 chris 的意思。
  • 遗憾的是它没有用。这是我的输出: top: unknown option '/' Usage: top -hv | -bcHiOSs -d secs -n max -u|U 用户 -p pid(s) -o field -w [cols]

标签: image shell docker command-line containers


【解决方案1】:

当容器启动时,它会执行一个二进制文件,该二进制文件可以在映像中定义或使用 cli 使用入口点和命令参数覆盖。

参见https://docs.docker.com/engine/reference/builder/#cmdhttps://docs.docker.com/engine/reference/builder/#entrypoint

在这种情况下,您似乎已经启动了容器以自动运行“top”,这就是为什么它以 pid 1 而不是交互式 bash 会话来启动和执行 top。如果您可以只粘贴您的 Dockerfile 入口点和 CMD 参数,则可以确切地知道发生了什么,但您应该能够通过 cli 覆盖它们:

sudo docker run --entrypoint /bin/bash -i -t ubuntu-latest

【讨论】:

  • 不幸的是,我无法覆盖它,我实际上还没有使用任何入口点/cmd。我真正想要得到的是我可以在图像中获得的位置,并且可以在有意义的情况下使用 shell 命令。不过,突然之间,这整个上衣都是凭空出现的。
  • 我输入了错误的命令,但它起作用了。非常感谢。这些“顶级”进程的正确名称是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多