首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行Docker交互式Shell

运行Docker交互式Shell
EN

Stack Overflow用户
提问于 2017-10-02 12:38:18
回答 1查看 9.4K关注 0票数 1

我试图运行交互式shell的图像,我正在运行的码头-撰写。

我试过码头管理和码头管理

代码语言:javascript
复制
xyz@abc:~$ sudo docker exec -it 235197ff4f0e /bin/bash
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"

xyz@abc:~$ sudo docker run -it  drone/drone:0.7 /bin/bash
No help topic for '/bin/bash'

试图在无人机内部生成ssh密钥,这样我就可以从私有存储库中克隆。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-02 12:50:32

这里发生了几件事。我想先看看第二个错误:

drone/drone映像被配置为自动运行/drone命令(您可以通过使用docker inspect并查找Entrypoint键来确定该命令)。所以如果你跑:

代码语言:javascript
复制
docker run drone/drone:0.7 help

最后在容器中运行:

代码语言:javascript
复制
drone help

当然,如果你跑:

代码语言:javascript
复制
docker run drone/drone:0.7 /bin/bash

您正在容器中运行:

代码语言:javascript
复制
drone /bin/bash

因此,您看到的错误消息(‘/bin/bash’没有帮助主题“),因为您将一个无法识别的选项传递给drone命令。

第一个错误要简单得多。您的错误消息是:

代码语言:javascript
复制
 exec: \"/bin/bash\": stat /bin/bash: no such file or directory

这似乎很清楚。没有/bin/bash。实际上,如果您检查映像的内容,您将看到只有一个最小的文件系统。查看的最简单方法是启动容器,然后使用docker export,如下所示:

代码语言:javascript
复制
$ docker run drone/drone:0.7 help
[...output doesn't matter...]
$ docker export $(docker ps -lq) | tar tf -

向你展示:

代码语言:javascript
复制
.dockerenv
dev/
dev/console
dev/pts/
dev/shm/
drone
etc/
etc/hostname
etc/hosts
etc/mtab
etc/resolv.conf
etc/ssl/
etc/ssl/certs/
etc/ssl/certs/ca-certificates.crt
proc/
sys/

没有/bin/bash,没有ssh,没有git等等,所以你不会对你目前的计划有太多的进展。您可能需要考虑克隆主机上的远程存储库,然后使用主机卷挂载(-v /host/path:/container path)将它们公开到容器中,或者构建包含所需工具的自定义映像。

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

https://stackoverflow.com/questions/46525611

复制
相关文章

相似问题

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