如何使用docker exec命令与zsh一起运行

6
我尝试使用zsh代替bash来运行docker exec命令,如下所示:
docker exec -it d52b251308b3 zsh

或者这样:
docker exec -it d52b251308b3 /bin/zsh

位置正确,但我收到了以下错误:
rpc错误:代码=2说明=oci运行时错误:执行失败: container_linux.go:247:启动容器进程导致"$PATH"中找不到可执行文件“zsh”。

你在容器中安装了zsh吗?执行docker exec d52b251308b3 ls /bin/zsh命令会输出什么? - BMitch
抱歉,我的回答是针对“docker run”的。首先,请确认该镜像上是否安装了zsh?如果这是一个发布的镜像,您能告诉我们它的名称吗? - Novaterata
你能运行 docker exec -it d52b251308b3 whereis zsh 吗? - Novaterata
1
谢谢@Novaterata,你指引我找到了正确的答案。我在容器中没有安装它(新手问题)。请将它作为答案添加,以便我能够给你的帮助点赞。 - Eury Pérez Beltré
1个回答

5

看起来那个镜像上没有安装zsh,否则/bin/zsh应该是路径。你可以创建一个新的Dockerfile使用基础镜像并安装zsh,或者在容器中临时安装它并从bash启动。


谢谢你的帮助,就是这样了! - Eury Pérez Beltré
我正在尝试运行这个命令 "docker exec -it e1825417c7db /bin/zsh",但是出现了以下错误 "OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "/bin/zsh": stat /bin/zsh: no such file or directory: unknown"zsh 已经安装在我的系统中。 - Jaypal Sodha
@JaypalSodha 当你说“安装在我的系统中”时,你是指主机操作系统还是Docker容器?你可以使用/bin/sh执行并双重检查zsh是否确实安装在容器内。 - Novaterata

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接