問題現象: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」中導出時,裏面已有的可訪問頁面。也能夠正常訪問。
說明這次容器快照導出、導入生成新鏡像,新鏡像執行生成容器,容器具備導出以前同樣的功能。