为什么 docker 在尝试访问容器时总是挂起?

为什么 docker 在尝试访问容器时总是挂起?

我的想法是将 Jenkins 和 Docker 安装在同一个 Dockerfile 中,因为我必须完成 CI/CD 工作流程。所以,现在,我的 Dockerfile 是......(非常简单的 Dockerfile,但只是暂时的)

FROM jenkins/jenkins:lts

构建并运行容器后,我遇到了一个问题。我想通过执行以下命令来访问容器:

winpty docker attach CONTAINER_ID

但是执行此命令后,控制台挂起并且被阻止。

有人知道为什么会发生这种情况吗?以及可能的解决办法?

编辑: 经过进一步研究,我发现docker文件对于 jenkins/jenkins:lts,它有ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/jenkins.sh"]命令,因此,当我尝试访问时(如我所提到的),我只会看到此输出,然后容器不会重定向到 bash。对吗?我该如何转到 bash?

答案1

通过使用以下方法修复:

docker exec -it CONTAINER_ID bash

如果你使用带有 winpty 终端的 Windows:

winpty docker exec -it CONTAINER_ID bash

相关内容