Docker导入容器快照,执行报错:docker: Error response from daemon: No command specified.

问题现象html

经过docker export 导出容器快照:nginx

1 docker export nginxDockerfileCopy > nginxDockerfileCopy.tar

在当前操做路径下查看:已生成:docker

 

 

 而后经过docker import将导出的压缩包,导入为镜像:浏览器

1 cat exportContainerSnapshot/nginxDockerfileCopy.tar | docker import - username/nginx-importsnapshot

查询能够看到已经生成镜像:bash

 

接下来docker run运行镜像生成容器:spa

1 docker run --name testImportSnapshot -p 8084:80 -d username/nginx-importsnapshot

报错:code

 

 

 解决方法:------------------------htm

根据提示信息,须要指定命令。因此,尝试在docker run 后面加上命令:blog

1 docker run --name nginxDockerfileCopy -p 8093:80 -d username/nginx-dockerfilecopy /bin/bash

执行成功,再也不报错。可是访问nginx,却访问不通。get

查询容器状态,发现容易已经中止。虽然执行中加了-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”中导出时,里面已有的可访问页面。也能够正常访问。

说明这次容器快照导出、导入生成新镜像,新镜像执行生成容器,容器具备导出以前同样的功能。

相关文章
相关标签/搜索