Sha*_*uri 1 bash docker drone.io docker-compose
我正在尝试为使用docker-compose运行的图像运行交互式shell.
我试过docker-run和docker-exec
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'
Run Code Online (Sandbox Code Playgroud)
试图在无人机内生成ssh密钥,以便我可以从私有存储库中克隆.
这里有几件事情.我想先看看第二个错误:
的drone/drone图像配置为自动运行/drone命令(其可以通过使用确定docker inspect和寻找Entrypoint键).所以,如果你运行:
docker run drone/drone:0.7 help
Run Code Online (Sandbox Code Playgroud)
你最终在容器内运行:
drone help
Run Code Online (Sandbox Code Playgroud)
当然,如果你跑:
docker run drone/drone:0.7 /bin/bash
Run Code Online (Sandbox Code Playgroud)
你正在容器中运行:
drone /bin/bash
Run Code Online (Sandbox Code Playgroud)
因此,您看到的错误消息("没有'/ bin/bash'的帮助主题"),因为您将一个无法识别的选项传递给该drone命令.
第一个错误要简单得多.您的错误消息是:
exec: \"/bin/bash\": stat /bin/bash: no such file or directory
Run Code Online (Sandbox Code Playgroud)
这似乎很清楚.没有/bin/bash.实际上,如果你检查图像的内容,你会发现只有一个最小的文件系统.最简单的方法是启动容器,然后使用docker export,如下所示:
$ docker run drone/drone:0.7 help
[...output doesn't matter...]
$ docker export $(docker ps -lq) | tar tf -
Run Code Online (Sandbox Code Playgroud)
哪个告诉你:
.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/
Run Code Online (Sandbox Code Playgroud)
没有/bin/bash,没有ssh,没有git,等等,所以你现在的计划不会有太多运气.您可能需要考虑在主机上克隆远程存储库,然后使用主机卷mount(-v /host/path:/container path)将它们暴露给容器,或者构建包含所需工具的自定义映像.
| 归档时间: |
|
| 查看次数: |
4746 次 |
| 最近记录: |