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」中導出時,裏面已有的可訪問頁面。也能夠正常訪問。

說明這次容器快照導出、導入生成新鏡像,新鏡像執行生成容器,容器具備導出以前同樣的功能。

相關文章
相關標籤/搜索