docker 错误:Error response from daemon: No command specified
记录一次docker 加载镜像启动后,出错的问题。
操作记录:
在执行
docker save -o xxx.tar xxx
时,没有使用镜像的名字加版本号的方式,而是采用了镜像id的方式,这样虽然同样可以保存镜像,但是造成了下面的问题。
转移到另一台机器,执行
docker load -i xxx.tar
加载镜像时,会发现加载进来的镜像只有镜像id ,并不存在镜像名和版本号,为了方便标识,所以采用了
docker import xx.tar xx:xxx
的方式加载了镜像,但是当执行 docker run -d xxxx
生成容器时,会发现报错
Error response from daemon: No command specified
原因是因为:
运行导入的镜像必须带command,否则启动会报错:Error response from daemon: No command specified
。
具体的command需要在导出容器的时候通过 docker ps
查看到
看完整的command的内容:
docker ps --no-trunc
结果打印
root@hombd03 ~]# docker ps --no-trunc | grep 'zoo'
e65c84b1ffae1c6e774d8140eb77e0d2913259ad89bf835c4ac4630d5c802187 bitnami/zookeeper:3.7.0-debian-10-r295 "/opt/bitnami/scripts/zookeeper/entrypoint.sh /opt/bitnami/scripts/zookeeper/run.sh" 14 hours ago Up 14 hours 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:8181->2181/tcp, :::8181->2181/tcp zookeeper
[root@homaybd03 ~]#
可以看到command命令为:
/opt/bitnami/scripts/zookeeper/entrypoint.sh /opt/bitnami/scripts/zookeeper/run.sh
加上上述命令在导出的镜像运行,报错:
starting container process caused "exec: \" /opt/bitnami/scripts/zookeeper/entrypoint.sh /opt/bitnami/scripts/zookeeper/run.sh": stat /bin/bash: no such file or directory": unknown
docker inspect
获取容器/镜像的元数据
比如 : 容器ID , 容器名称 , 容器状态 , 容器镜像 , 挂载情况 , 网络信息 。
[root@hombd03 opt]# docker inspect bitnami/zookeeper:3.7.0-debian-10-r295
[
{
"Id": "sha256:45b609ee38ab2a792b7a5feeb588e79946cf2075d40d50bc3f20185867fce74c",
"RepoTags": [
"bitnami/zookeeper:3.7.0-debian-10-r295"
],
"RepoDigests": [
"bitnami/zookeeper@sha256:ec95bd87ef783dedac75d7b1be35423efe12cb3bfdc71b80e7ca14ac44f33f5e"
],
"Parent": "",
"Comment": "",
"Created": "2022-02-16T22:16:17.00142189Z",
"Container": "752fd8af3be17cc0b08305ca9be72df3ff9a890bf3d0d29f721440a2fb245242",
"ContainerConfig": {
"Hostname": "752fd8af3be1",
"Domainname": "",
"User": "1001",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"2181/tcp": {},
"2888/tcp": {},
"3888/tcp": {},
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/bitnami/common/bin:/opt/bitnami/java/bin:/opt/bitnami/zookeeper/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"HOME=/",
"OS_ARCH=amd64",
"OS_FLAVOUR=debian-10",
"OS_NAME=linux",
"BITNAMI_APP_NAME=zookeeper",
"BITNAMI_IMAGE_VERSION=3.7.0-debian-10-r295"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"/opt/bitnami/scripts/zookeeper/run.sh\"]"
],
"Image": "sha256:6a7112a7fbac284bd4a1e5c143cc58a2c5c360a86327432f80eb8547a98a225c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/opt/bitnami/scripts/zookeeper/entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "Bitnami <containers@bitnami.com>"
}
},
"DockerVersion": "19.03.15",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "1001",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"2181/tcp": {},
"2888/tcp": {},
"3888/tcp": {},
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/bitnami/common/bin:/opt/bitnami/java/bin:/opt/bitnami/zookeeper/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"HOME=/",
"OS_ARCH=amd64",
"OS_FLAVOUR=debian-10",
"OS_NAME=linux",
"BITNAMI_APP_NAME=zookeeper",
"BITNAMI_IMAGE_VERSION=3.7.0-debian-10-r295"
],
"Cmd": [
"/opt/bitnami/scripts/zookeeper/run.sh"
],
"Image": "sha256:6a7112a7fbac284bd4a1e5c143cc58a2c5c360a86327432f80eb8547a98a225c",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/opt/bitnami/scripts/zookeeper/entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "Bitnami <containers@bitnami.com>"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 468138823,
"VirtualSize": 468138823,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/f95f05eadb9bb8070f1ab783c09c78611c93787511c023dbfb7120da88dec57a/diff:/var/lib/docker/overlay2/6e423c006f99f140d96926700d40886e84e4a972c8be5b90c33c283d1624775b/diff:/var/lib/docker/overlay2/5dc9a6af0397728dcaa26d3e9967c0881720ab8b58c0ee88e46935285832d657/diff:/var/lib/docker/overlay2/900da13ce663f5dd8514d4de798d08b6d5733f52f5b425e40bf0536007d20a45/diff:/var/lib/docker/overlay2/f4fd71926b31fd53373368177058bb9c3da778a250785a52d0da3c76b1a8c90b/diff:/var/lib/docker/overlay2/279ddeacfd766da362747453c185d3b33ead677ad1e69f2264a7d5a3a016b06c/diff:/var/lib/docker/overlay2/2cfc0cadc946ead6ae24605d028422f68497987586da26372bfdf5216c830dca/diff:/var/lib/docker/overlay2/5d57724482d8de579523a6002ebcdc9d2d92a17a041b5042e0aad70760908761/diff:/var/lib/docker/overlay2/70050ade5cf3d75f5a7a43f9c2baffb5277b5f64d406f671f3b5acde0e2a0d02/diff:/var/lib/docker/overlay2/68fc31637545f87be1bb8916cf2fc113b958357e716e585c6efc6ca683708b91/diff:/var/lib/docker/overlay2/252acc70a8e346e98a7ea2d9c159ee85105a5353f2d6dba04af2c8148d933a7f/diff:/var/lib/docker/overlay2/7bf5b360f214e3ec08473d3949f5de30b8834788969209e89ea958ee9e62635b/diff",
"MergedDir": "/var/lib/docker/overlay2/802c30c17becaa44b97513ec40804147a7778a0dc21b8b334dbdc35832f77050/merged",
"UpperDir": "/var/lib/docker/overlay2/802c30c17becaa44b97513ec40804147a7778a0dc21b8b334dbdc35832f77050/diff",
"WorkDir": "/var/lib/docker/overlay2/802c30c17becaa44b97513ec40804147a7778a0dc21b8b334dbdc35832f77050/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:ae58f1561944087b459d2688dff7eda143f4d7512f05bf2b52f134fdfd2b8cd4",
"sha256:49b6367d14bea358fde78c72c9e8100e770fa37e0293a6298bc9561cdfceaeb0",
"sha256:d22afaaa98cc3d77619b7df88ce5755897be196fca05de9567f246c12158a5c7",
"sha256:2373f8884a29cf147f46e65765842e529fe4465525a1e2347fdac93b754cbc05",
"sha256:f64ed979811965756ee8cc1052bda7dcf59613571a900838a1b56afccbda3b54",
"sha256:0883ecaa71cfdb293427fa667a025256068c18ded3344df24136151c1672c039",
"sha256:1eb181a74aefe42e38253825cd2a4f2047768f70df92ae9f07e546b4d6bb6e81",
"sha256:349ba24e372505a7629ecfd292bd600c28947d69e27b44f32e1ffaeaff198db8",
"sha256:a09609af3fbd296180c13efa8ced1e46edcb319a0eea009b01b28387df8ae990",
"sha256:520c625db0d5fffcc3e6ef6b093f69361b3f8caaeccafb2d83fbe44f0eef82b0",
"sha256:5da386d3ae9e330bf4cb3c8fb680d4fceb3dc589dd55f2a79aee4f6d390b2275",
"sha256:1a3bcdf6e969353fa2265599c9509055242f1c95efa4c3c724a4379478fb03c4",
"sha256:2f6f1f6abc48ad0808a42d5f8d6b12320ff10b25e76cceb7bca5574298a79a6e"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
[root@homaybd03 opt]#
终极解决
经过两天的折腾,终于找到原因所在了,原来我在导出镜像的时候用的是 docker save
命令,在导入的时候用了 docker import
方法了,应该用 docker load
进行加载进来,这样镜像就不会丢失 command
命令了。
docker save/load
一般导出镜像,导出导入镜像docker export/import
一般导出容器,
相关文章:
运行导出的镜像报错:docker: Error response from daemon: No command specified.
docker--导出镜像 save/export、导入镜像 load/import区别及使用场景
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)