码头。io/etcd 找不到容器命令

quay.io/etcd Container Command not found

我收到以下错误:

docker: Error response from daemon: Container command '-name' not found or does not exist.

我正在按照 the CoreOS documentation for running etcd under Docker 中的示例进行操作。

以下是我正在尝试的配置 运行:

docker run -d -v /usr/share/ca-certificates/:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
 --name etcd quay.io/coreos/etcd \
 -name k8_etcd0 \
 -advertise-client-urls http://10.0.0.4:2379,http://10.0.0.3:4001 \
 -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
 -initial-advertise-peer-urls http://10.0.0.3:2380 \
 -listen-peer-urls http://0.0.0.0:2380 \
 -initial-cluster-token etcd-cluster-1 \
 -initial-cluster k8_etcd0=http://10.0.0.4,k8_etcd1=http://10.0.0.5:2388 \
 -initial-cluster-state new

您的 docker 运行 命令有两个错误 - 1. 你指定了 name 标志两次 2. 在您第二次指定它时,您使用的是单破折号而不是双破折号,这是您应该做的。

所以解决方案是删除第二个名字标志,然后你的命令应该是这样的 -

docker run -d -v /usr/share/ca-certificates/:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
 --name etcd quay.io/coreos/etcd \
 -advertise-client-urls http://10.0.0.4:2379,http://10.0.0.3:4001 \
 -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
 -initial-advertise-peer-urls http://10.0.0.3:2380 \
 -listen-peer-urls http://0.0.0.0:2380 \
 -initial-cluster-token etcd-cluster-1 \
 -initial-cluster k8_etcd0=http://10.0.0.4,k8_etcd1=http://10.0.0.5:2388 \
 -initial-cluster-state new

我尝试 运行 在本地安装它以查看在我建议的修复后是否有效,但出现错误,因为命令中指定的 ips 对我的计算机来说是未知的。如果它们在您的设置中有意义 - 该命令应该在应用我的修复后起作用。

您缺少在 docker 容器中启动的命令 etcd

docker run -d -v /usr/share/ca-certificates/:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
 --name etcd quay.io/coreos/etcd \
 etcd \
 -name k8_etcd0 \
 -advertise-client-urls http://10.0.0.4:2379,http://10.0.0.3:4001 \
 -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
 -initial-advertise-peer-urls http://10.0.0.3:2380 \
 -listen-peer-urls http://0.0.0.0:2380 \
 -initial-cluster-token etcd-cluster-1 \
 -initial-cluster k8_etcd0=http://10.0.0.4,k8_etcd1=http://10.0.0.5:2388 \
 -initial-cluster-state new

还有一些您需要的关于初始集群等的修复,但是当您启动它时会在错误消息中看到这些修复