【问题标题】:Docker container does not give me a shellDocker容器不给我一个shell
【发布时间】:2016-09-02 18:57:10
【问题描述】:

我正在尝试使用此命令在 Docker Hub 上的 Docker 容器 moul/phoronix-test-suite 中获取一个 shell

docker run -t -i moul/phoronix-test-suite /bin/bash

但是在执行命令(二进制文件)之后,容器停止并且我没有进入它。

[slazer@localhost ~]$ docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                     PORTS               NAMES
0993189463e6        moul/phoronix-test-suite   "phoronix-test-suite "   7 seconds ago       Exited (0) 3 seconds ago                       kickass_shockley

这是一个ubuntu:trusty 容器。如何将 shell 放入其中,以便将参数发送到命令 phoronix-test-suite?

【问题讨论】:

  • 您是否尝试过使用其他命令? (例如只用 sh 试试)
  • @vmonteco 我试过/bin/sh/bin/dash
  • @Cyrus $ docker exec -it "5556eddf5376" bash 作为用户运行Error response from daemon: Container long_alphanum_id is not running
  • 容器的状态是Exited (0),我应该先在执行./phoronix-test-suite之后阻止容器退出...

标签: linux bash docker containers dockerfile


【解决方案1】:

docker run -t -i moul/phoronix-test-suite /bin/bash 不会给你一个 bash(与 docker run -it fedora bash 相反)

根据它的Dockerfile,它会做的是执行

phoronix-test-suite /bin/bash

意思是,它将/bin/bash作为参数传递给phoronix-test-suite,它将立即退出。这样您就没有时间执行 docker exec -it <container> bash 来在活动容器会话中打开 bash。

【讨论】:

  • 太棒了,谢谢。所以我一直在错误地使用它,正确地我应该输入类似docker run -it moul/phoronix-test-suite detailed-system-info的东西。
【解决方案2】:

您是否尝试过重新启动 docker?它可能需要重新启动甚至重新启动主机。

【讨论】:

  • 我已经停止并删除了所有容器,docker ps -asudo docker ps -a 现在不显示任何内容。我什至多次重新启动机器。它没有帮助。
  • 按照上面提到的链接,如果这些步骤不起作用,请回来进行更多头脑风暴。我将在这里启动我的 docker 并尝试您使用的命令来找出解决方案的位置
  • 好像容器没有运行,甚至状态是Exited (0)。如果你想和我一起头脑风暴,你最好在 irc.freenode.net 上加入 #docker。我在那儿。
猜你喜欢
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
相关资源
最近更新 更多