Docker容器未运行

10

我创建了一个Docker镜像,基于CentOS镜像,并在该镜像中编写了Python脚本。该镜像已在主机系统上运行。随后,我将该镜像转换为tar.gz格式。然后,我将该tar.gz文件导入到Docker宿主机(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命令对于我系统中的所有其他镜像都可以工作,但我几乎尝试了所有方法,除了这个错误之外没有任何输出。

尽管docker run -it image_name /bin/bash命令对于我系统中的所有其他镜像都可以工作,但我几乎尝试了所有方法,除了这个错误之外没有任何输出。

请更新问题,展示您用于将图像导出为tar文件的确切命令行以及您在另一台主机上使用的确切命令行来导入它。 - larsks
我假设你正在执行docker save命令将镜像保存到tar文件中,然后使用gzip进行压缩,最后使用docker load命令加载在tar.gz中包含的镜像。我建议你尝试使用未压缩的格式,即只使用tar。 - Carlos Rafael Ramirez
1
可能你的镜像没有安装bash。尝试使用docker run -it image_name /bin/sh命令。 - joelnb
docker run -it image_name /bin/sh 也不起作用! - Jit
我也遇到了同样的问题。不知道为什么这个问题会被踩?!!! - Suku
@Jit,你是怎么获得那个镜像的?我需要看到镜像的dockerfile,或者至少需要知道镜像的入口点(因为你只有在面对这个特定的镜像时才会遇到问题)。请在你的问题中添加这些信息。 - Mohammed Noureldin
3个回答

2

docker run -it image_name /bin/sh 对我来说非常有效!(Docker镜像,例如Alpine,没有/bin/bash)。


1

我刚刚在更新Docker For Windows后遇到了同样的问题。看起来它破坏了一些镜像层。

我通过运行以下命令清除了所有缓存容器和镜像:

docker ps -qa|xargs docker rm -f
docker images -q|xargs docker rmi

上一个命令返回了一些错误(有些返回的图像不存在了)。

然后我重新启动了服务,一切都正常运行了。


0

我曾经遇到过同样的问题,但是在按照这篇文章中描述的步骤后,问题得到了解决... https://www.jamescoyle.net/how-to/1512-export-and-import-a-docker-image-between-nodes

我们需要将已退出的容器基于镜像(I)提交为新的镜像(N),而不是将 Docker 镜像(I)保存为 .tar 文件并导入。 然后将新提交的镜像(N)保存为 .tar 文件,以便在新环境中导入。

希望这能有所帮助...


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