Docker

來自重新導入的 docker 映像/容器的“未指定命令”

  • May 10, 2022

我正在嘗試從一台機器上獲取一個 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。

引用自:https://serverfault.com/questions/757210