Docker导入容器快照,执行报错:docker: Error response from daemon: No command specified.
问题现象:
通过docker export 导出容器快照:
1 docker export nginxDockerfileCopy > nginxDockerfileCopy.tar
在当前操作路径下查看:已生成:
然后通过docker import将导出的压缩包,导入为镜像:
1 cat exportContainerSnapshot/nginxDockerfileCopy.tar | docker import - username/nginx-importsnapshot
查询可以看到已经生成镜像:
接下来docker run运行镜像生成容器:
1 docker run --name testImportSnapshot -p 8084:80 -d username/nginx-importsnapshot
报错:
解决方法:------------------------
根据提示信息,需要指定命令。所以,尝试在docker run 后面加上命令:
1 docker run --name nginxDockerfileCopy -p 8093:80 -d username/nginx-dockerfilecopy /bin/bash
执行成功,不再报错。但是访问nginx,却访问不通。
查询容器状态,发现容易已经停止。虽然执行中加了-d后台执行的参数,还是自动停止了。看来/bin/bash命令不能满足启动nginx的需求。
因为这是从容器“nginxDockerfileCopy”中导出的快照,所以,我查了一下“nginxDockerfileCopy”的COMMAND参数:
参考以上COMMAND,将run命令修改为:
docker run --name testImportSnapshot -p 8094:80 -d username/nginx-importsnapshot nginx -g 'daemon off;'
此时,查看容器状态:
容器在启动状态中。
浏览器中访问:http://localhost:8094/index.html 可以看到nginx页面。
访问:http://localhost:8094/haha.html 这是从容器“nginxDockerfileCopy”中导出时,里面已有的可访问页面。也可以正常访问。
说明此次容器快照导出、导入生成新镜像,新镜像执行生成容器,容器具有导出之前一样的功能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示