Docker
來自重新導入的 docker 映像/容器的“未指定命令”
我正在嘗試從一台機器上獲取一個 docker 容器並在另一台機器上執行它並遇到此錯誤:“來自守護程序的錯誤響應:未指定命令”。
下面是一個顯示問題的簡化範例:
docker --version Docker version 1.10.1, build 9e83765 docker pull ubuntu docker run --name u1 -dit ubuntu:latest docker export -o exported u1 docker stop u1 docker rm u1 docker import exported ubuntu:imported docker run --name u1 -dit ubuntu:imported docker: Error response from daemon: No command specified.
在該範例中,我們首先拉取一個映像(ubuntu)並
u1
從中成功創建/執行容器。然後我們將該容器導出到文件 (exported
),停止/刪除容器,將文件導入新映像 (ubuntu:imported
) 並嘗試從中執行新容器。它失敗。
docker export
不會導出關於容器的所有內容——只是文件系統。因此,當將轉儲導入新的 docker 映像時,需要指定額外的標誌來重新創建上下文。例如,如果原始容器執行良好,因為用於創建其映像的 Dockerfile 包含在其中,則以
CMD ["/usr/bin/supervisord"]
這種方式導入您的轉儲:docker import \ --change 'CMD ["/usr/bin/supervisord"]' \ path/to/dump.tar imagename:tagname
您可以使用
docker load
命令從存檔文件載入圖像。此命令將一起導入圖像文件和 args。