2017-06-21 209 views
1

顯然,Docker容器共享相同的UUID。如何爲同一個碼頭主機上的每個容器設置不同的值?碼頭集裝箱UUID

我運行一個程序,領事,這顯然與具有相同UUID泊塢窗容器作爲問題引發此錯誤:

[email protected]:/usr/local/bin# consul agent -config-dir /etc/consul.d/ -bind 172.17.0.3 & 
[1] 428 
[email protected]:/usr/local/bin# ==> WARNING: LAN keyring exists but -encrypt given, using keyring 
==> Starting Consul agent... 
==> Joining cluster... 
==> 3 error(s) occurred: 

* Failed to join 10.24.5.251: Member 'kkbox-test-redis-1' has conflicting node ID 'ec2484ee-2960-1781-6d95-3bd994e5f3bf' with this agent's ID 
* Failed to join 10.24.5.252: Member 'kkbox-test-redis-1' has conflicting node ID 'ec2484ee-2960-1781-6d95-3bd994e5f3bf' with this agent's ID 
* Failed to join 10.24.6.251: Member 'kkbox-test-redis-1' has conflicting node ID 'ec2484ee-2960-1781-6d95-3bd994e5f3bf' with this agent's ID 

有沒有辦法在這裏每個容器更新UUID?:

/proc/sys/kernel/random/boot_id 

回答

1

通行證-disable-host-node-idconsul agent ...,和領事將在啓動時生成一個隨機的節點ID(而不是從例如/proc/sys/kernel/random/boot_id生成它)。

像這樣:

consul agent -disable-host-node-id -config-dir /etc/consul.d/ -bind 172.17.0.3 & 

或者,你總是可以生成節點ID自己,並通過-node-id標誌傳遞。


另見Consul join broken in containerized Servers run on same node

+0

感謝托馬斯。替代似乎工作。第一種解決方案由於某種原因不起作用。 –