【问题标题】:quay.io/etcd Container Command not found找不到 quay.io/etcd 容器命令
【发布时间】:2016-11-16 22:29:26
【问题描述】:

我收到以下错误:

docker:来自守护程序的错误响应:容器命令“-name”不是 找到或不存在。

我正在按照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 coreos etcd


    【解决方案1】:

    您缺少在 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
    

    加上一些你需要的关于初始集群等的修复,但你会在启动它时看到错误消息

    【讨论】:

    • 谢谢它的工作,但像你说的那样有错误消息。
    【解决方案2】:

    您的 docker run 命令中有两个错误 - 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内部名
    • 没错,我错过了。谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 2016-03-16
    相关资源
    最近更新 更多