问题现象: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”中导出时,里面已有的可访问页面。也能够正常访问。
说明这次容器快照导出、导入生成新镜像,新镜像执行生成容器,容器具备导出以前同样的功能。