[英]Running Docker Interactive Shell
我正在嘗試為使用docker-compose運行的圖像運行交互式外殼。
我嘗試了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'
試圖在無人機內部生成ssh密鑰,以便我可以從專用存儲庫中克隆。
這里發生了幾件事。 我想先看看第二個錯誤:
drone/drone
圖像配置為自動運行/drone
命令(您可以通過使用Entrypoint
docker inspect
和尋找Entrypoint
密鑰來確定)。 因此,如果您運行:
docker run drone/drone:0.7 help
您最終在容器內運行:
drone help
當然,如果您運行:
docker run drone/drone:0.7 /bin/bash
您正在容器中運行:
drone /bin/bash
因此,您看到的錯誤消息(“'/ bin / bash'的無幫助主題”),因為您將無法識別的選項傳遞給了drone
命令。
第一個錯誤要簡單得多。 您的錯誤消息是:
exec: \"/bin/bash\": stat /bin/bash: no such file or directory
這似乎很清楚。 沒有/bin/bash
。 實際上,如果您檢查圖像的內容,您會發現只有最小的文件系統。 最簡單的查看方法是啟動一個容器,然后使用docker export
,如下所示:
$ docker run drone/drone:0.7 help
[...output doesn't matter...]
$ docker export $(docker ps -lq) | tar tf -
顯示以下內容:
.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
)將它們公開到容器中,或者構建包含所需工具的自定義映像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.