簡體   English   中英

運行Docker Interactive Shell

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM