docker error response from daemon no command specified
概述
这个错误是由于所运行的镜像没有默认的启动命令且在运行的时候也没有指定启动命令导致的。解决办法是在启动的时候指定容器的启动命令,比如:
docker run -it my_container bash
问题背景
我pull redis镜像,然后使用docker image save -o命令将其保存,然后再另一台主机上使用docker image import命令导入,然后运行redis镜像导致的。
查看镜像的启动命令:
docker image inspect <image_name>
输出中,会看到一个名为 “Cmd” 的部分,它包含了镜像的启动命令。这个命令会显示为一个JSON数组。例如:
"Cmd": [ "/bin/sh", "-c", "echo 'Hello, world!'" ]
docker image import和docker image load命令有何不同
1. `docker image import`:
- 这个命令用于从文件系统中的归档文件(例如 .tar 文件)导入镜像。
- 可以使用 `docker image import` 命令将镜像文件导入到本地 Docker 引擎中,并为其指定一个新的仓库和标签名称。
- 该命令通常用于从已经存在的镜像文件创建新的镜像。
2. `docker image load`:
- 这个命令用于从文件系统中的归档文件(例如 .tar 文件)加载镜像。
- 您可以使用 `docker image load` 命令将镜像文件加载到 Docker 引擎中,并恢复其中包含的所有镜像层和元数据。
- 该命令通常用于从归档文件中还原整个镜像仓库,包括多个镜像及其历史记录。
总的来说,`docker image import` 适用于单个镜像的导入和重命名,而 `docker image load` 适用于从归档文件中还原完整的镜像仓库。