加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

无法发现泊坞容器

发布时间:2020-12-16 03:37:18 所属栏目:安全 来源:网络整理
导读:我正在按照本教程进行服务发现http://jasonwilder.com/blog/2014/07/15/docker-service-discovery 简述: 我创建了一个运行在x.y.z.d:4001的etcd主机 docker run -d --name etcd -p 4001:4001 -p 7001:7001 coreos/etcd 在backend_serverip:8000和docker-r

我正在按照本教程进行服务发现http://jasonwilder.com/blog/2014/07/15/docker-service-discovery

简述:

我创建了一个运行在x.y.z.d:4001的etcd主机

docker run -d --name etcd -p 4001:4001 -p 7001:7001 coreos/etcd

在backend_serverip:8000和docker-register创建了一个运行容器的后端服务器

$docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
$docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register

在backend2_serverip:8000和docker-register创建了另一个运行容器的后端服务器

 $docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
 $docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register

创建了一个运行docker-discover和ubuntu映像的客户端

$docker run -d --net host --name docker-discover -e ETCD_HOST=10.170.71.226:4001 -p 127.0.0.1:1936:1936 -t jwilder/docker-discover

当我查看日志以查看容器是否正在注册时,我看到了以下错误

2015/07/09 19:28:00 error running notify command: python /tmp/register.py,exit status 1
2015/07/09 19:28:00 Traceback (most recent call last):
 File "/tmp/register.py",line 22,in 

我尝试手动创建此目录,我也尝试使用特权选项运行容器但没有运气

最佳答案
您获得的错误来自bug in the code.问题是/ etcd目录中不存在/后端.您可以通过运行以下方法手动创建它:

curl -L http://127.0.0.1:4001/v2/keys/backends -XPUT -d dir=true

一旦目录存在于etcd中,您就不会再收到错误了.

我创建了一个修复错误的pull request,如果你想使用固定代码,你可以构建自己的图像:

git clone git@github.com:rca/docker-register.git
cd docker-register
docker build -t docker-register .

然后你的docker寄存器命令看起来像:

$docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t docker-register

注意我只是从命令中的图像名称中删除了jwilder /,因此它使用了您的本地版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读