首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker run立即退出,尽管分离、交互、-tty并提供了一个命令。

Docker run立即退出,尽管分离、交互、-tty并提供了一个命令。
EN

Stack Overflow用户
提问于 2020-10-06 14:20:27
回答 1查看 218关注 0票数 1

在Windows10主机(DockerVersion19.03.13,build 4484c46d9d )上,我尝试使用所有可能的--tty--interactive--detach组合运行一个坞映像,但它们都没有给我带来bash提示,总是立即退出。/bin/bash出现在图像中。Dockerfile来自https://hub.docker.com/r/astj/centos5-vault/dockerfile

我在docker run <switches> astj/centos5-vault /bin/bash中使用了完整的-t-i-d组合,即:-d-i-t-it-id-td-dit

在任何情况下,容器都会立即退出。如果我将/bin/bash更改为ls,则可以看到目录列表。但当然,容器会像预期的那样立即退出。为了排除故障,我使用以下命令进行了实验,结果如下:

代码语言:javascript
复制
+-------------------------------------------------------+----------------------------------------------------------------+
|                        Command                        |                             Output                             |
+-------------------------------------------------------+----------------------------------------------------------------+
| docker run astj/centos5-vault /bin/bash               | None. Exits.                                                   |
| docker run -i astj/centos5-vault /bin/bash            | None. Exits.                                                   |
| docker run -it astj/centos5-vault /bin/bash           | None. Exits.                                                   |
| docker run -t astj/centos5-vault /bin/bash            | None. Exits.                                                   |
| docker run -td astj/centos5-vault /bin/bash           | Prints a container hash, then exits                            |
| docker run -id astj/centos5-vault /bin/bash           | Prints a container hash, then exits                            |
| docker run -d astj/centos5-vault /bin/bash            | Prints a container hash, then exits                            |
| docker run -dit astj/centos5-vault /bin/bash          | Prints a container hash, then exits                            |
| docker run -it astj/centos5-vault ls -la /bin/bash    | "-rwxr-xr-x 1 root root 768664 Jul 10  2013 /bin/bash". Exits. |
| docker run -it astj/centos5-vault /bin/bash --version | None. Exits.                                                   |
| docker run -it astj/centos5-vault /bin/bash --login   | None. Exits.                                                   |
| docker run -it astj/centos5-vault /bin/uname -r       | "4.19.128-microsoft-standard". Exits.                          |
| docker run astj/centos5-vault whoami                  | "root". Exits.                                                 |
+-------------------------------------------------------+----------------------------------------------------------------+

我试着排除故障,但是docker logs <container>没有显示一行日志。

有谁知道为什么/bin/bash命令仍然导致容器立即退出而不是带我到bash提示符呢?

EN

回答 1

Stack Overflow用户

发布于 2022-01-14 00:44:01

我也碰到了上面的问题,好像上面的用户也分别发布了这个问题,并在那里找到了一个答案:https://forums.docker.com/t/docker-run-exits-immediately-despite-detach-interactive-tty-and-providing-a-command/99444/5

对于以后在这里找到出路的人来说,在我前面提到的配置中,

是一个特定于Windows环境的问题,通过对Windows10Build 18995的更改解决了这个问题。

解决问题的步骤:

创建文件:%userprofile%.wslconfig添加这两行: wsl2 kernelCommandLine = vsyscall=emulate重新启动wsl关机重新启动码头桌面

我在这里找到了答案:https://github.com/microsoft/WSL/issues/4694#issuecomment-556152512 (启用内核配置中的vsyscall=emulate来运行较旧的基本映像,如Centos 6)

这对我有效,它似乎只影响某些分布,对我来说也是centos 6。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64227769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档