运行 Docker 互动 Shell
Running Docker Interactive Shell
我正在尝试 运行 交互式 shell 我正在 运行 使用 docker-compose 的图像。
我尝试了 docker-运行 和 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
命令(您可以使用 docker inspect
并查找 Entrypoint
键来确定).所以如果你 运行:
docker run drone/drone:0.7 help
您最终 运行ning,在容器内:
drone help
当然,如果你 运行:
docker run drone/drone:0.7 /bin/bash
你是运行宁,在容器中:
drone /bin/bash
因此您看到的错误消息 ("No help topic for '/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
) 将它们暴露给您的容器,或者构建一个包含您需要的工具的自定义映像。
我正在尝试 运行 交互式 shell 我正在 运行 使用 docker-compose 的图像。
我尝试了 docker-运行 和 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
命令(您可以使用 docker inspect
并查找 Entrypoint
键来确定).所以如果你 运行:
docker run drone/drone:0.7 help
您最终 运行ning,在容器内:
drone help
当然,如果你 运行:
docker run drone/drone:0.7 /bin/bash
你是运行宁,在容器中:
drone /bin/bash
因此您看到的错误消息 ("No help topic for '/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
) 将它们暴露给您的容器,或者构建一个包含您需要的工具的自定义映像。