OCI runtime create failed: container_linux.go:349: starting container process caused "exec: "bash": executable file not found in $PATH": unknown
docker save#
docker save centos:self -o centos.tar
导出镜像到文件- 用于持久化镜像,导出的tar包需要用
docker load -i imagedata.tar
导入 - 会将镜像的所有layer导出,导出的文件会比较大。
docker load
不可指定镜像名和tar。docker import
可以指定镜像名和tar- 可用
docker history 8652b9f0cb4c
查看镜像的layer[root@twilight0319 ~]# docker history centos:self IMAGE CREATED CREATED BY SIZE COMMENT c9dfc8a523b0 6 minutes ago bash 87.5MB <missing> 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 3 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B <missing> 3 weeks ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB
docker export#
docker export containerid> dockertest.tar
导出容器,导入后又会变成镜像- 用于持久化容器。导出成tar包需要用
docker import
导入docker import dockertest.tar -- centos:111
或者cat dockertest.tar | docker import - imagename:tag
- 丢失所有元数据,只保存虚拟机的当前状态。
[root@twilight0319 ~]# docker history centos:111 IMAGE CREATED CREATED BY SIZE COMMENT ef0539471f16 45 seconds ago 267MB Imported from -
区别#
将两种方式导出的tar包再导入成镜像后,重新运行容器,功能上没有任何区别。
做了一些测试,现在有两个文件:export.tar
和 save.tar
分别是采用export和save的方式导出的。如果采用不匹配的方式导入会怎么样呢:
# 成功,镜像可正常使用
docker load -i save.tar
# 成功,镜像可正常使用
docker import export.tar -- kg:export
# 报错:
# open /mnt/docker-data/tmp/docker-import-774996991/dev/json: no such file or directory
docker load -i export.tar
# 成功,采用不匹配的导入竟然也能成功,但是镜像不可正常使用,
docker import save.tar -- kg:save_import
# 使用镜像时出错,无法读取bash
# docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown.
docker run -itd --name kg_save_import kg:save_import bash
坑#
这四个命令的对应关系不可出错,否则,会出现奇怪的问题比如:
这东西真是巨坑
Error response from daemon: OCI runtime create failed: container_linux.go:349 : starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown
- 转移镜像:
docker save imagename:tag -o imagedata.tar
和docker load -i imagedata.tar
- 转移容器:
docker export containerid> dockertest.tar
和docker import dockertest.tar -- imagename:tag
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?