我创建了一个docker镜像,它是一个基于centos图像的python脚本。此映像正在主机系统中运行。然后我用tar.gz格式转换了那个图像。之后,当我将tar.gz文件导入docker host(在ubuntu系统中)时,它已正确完成,docker图像列表显示了那里列出的图像。然后我尝试使用以下命令以交互模式运行容器:
$docker run -it image_name /bin/bash
它会抛出以下错误:
docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"/bin/bash\\\": stat /bin/bash: no such file or directory\"\n".
虽然docker run -it image_name /bin/bash
命令适用于我系统中的所有其他图像。我尝试了几乎所有的方法,但除了这个错误之外没有输出。
答案 0 :(得分:2)
docker run -it image_name /bin/sh
适合我! (Docker图像,像Alpine一样,没有/bin/bash
)。
答案 1 :(得分:1)
我在更新 Docker For Windows 后遇到了同样的问题。它似乎破坏了一些图像层。
我通过运行:
清除了所有缓存的容器和图像docker ps -qa|xargs docker rm -f
docker images -q|xargs docker rmi
最后一个命令返回了一些错误(一些返回的图像不再存在)。
然后我重新启动了服务,一切都再次运行。
答案 2 :(得分:0)
我遇到了同样的问题,在按照本文中描述的步骤后,它得到了解决... https://www.jamescoyle.net/how-to/1512-export-and-import-a-docker-image-between-nodes
我们需要将基于图像(I)的退出容器作为新图像(N)提交,而不是将docker镜像(I)保存为.tar并导入。 然后将新提交的图像(N)保存为.tar文件,以便导入新环境。
希望这会有所帮助......