2017-07-11 11 views
4

私は領事のコンテナを作成しようとしています、それは、この出力に失敗し続け、面白い、私は実際にそれがされ、次のエラー領事コンテナは

Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents) 

であるとは思わないプロトコルバージョンエラーで終了します私が使用していますコマンド:

docker container run --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul 

をそれは、レジストリから最新バージョンを持つ単一ノード新規インストールであるので、ここで起こって任意のエージェント/クライアントとはアップグレードまたはバージョンの不一致がありません。

答えて

1

修正する2つの事項。まず、-vボリューム引数は、コマンドではなく、dockerコマンドでなければなりません。適切な場所に移動:デフォルトの領事によって特権ポート(つまり53)を聞くことができない、

第二:

docker container run -v "/consul/data:/var/lib/consul" -data-dir /var/lib/consul --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 

また(/コンテナ/ DIR彼らは/ホスト/ディレクトリです)それらを反転。この参照:https://www.consul.io/docs/guides/forwarding.htmlを、そう-dns-port 53を削除し、彼らが推奨する任意のアプローチを実装:

docker container run -v "/consul/data:/var/lib/consul" -data-dir /var/lib/consul --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -bootstrap-expect 1 -ui -datacenter dc1 

私はDNSMasq setupをお勧めします、実装が容易です。

+0

感謝を返信する。私は実際に文書を見て、再帰的アプローチに従おうとしました。 デフォルトでは、Consulは.consul以外のDNSレコードを解決しないことに注意することは重要です。再循環設定オプションが設定されている場合を除きます。 私は、コマンドに-recursors 8.8.8.8というように元の質問を貼り付けましたが、それも助けにはならないと付け加えました。それについての助け?すべての設定をコンテナに保存する必要があります。 –

0

@Robert申し訳ありませんが、私たちもここで少し話題になったと思います。本当の問題はそれが表示され、その後すぐに出るメッセージです。

recursorsの例えば同じ

[[email protected] user]# docker container run --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul 
==> Found address 'X.X.X.X' for interface 'eth0', setting bind option... 
Consul v0.8.5 
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents) 
[[email protected] user]# docker container ls | grep consul-server 
[[email protected] user]# 

(それはしかし、エラーではないと思います)私はあなたの例を試してみましたが、それは同じメッセージ/エラーを与える:時間を割いて

[[email protected] user]# docker container run --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul -recursers 8.8.8.8 
==> Found address 'X.X.X.X' for interface 'eth0', setting bind option... 
Consul v0.8.5 
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents) 
[[email protected] user]# docker container ls | grep consul-server 
[[email protected] user]# 
+0

あなたはまだ私が問題だと言った '--dns-port = 53'を使用しています – Robert

+0

ここには--dns-port = 53がなくても同じ問題があります。 MacBook-Pro-2:.ssh jagatveer $ドッカーコンテナ実行 - ネットホスト - 名前コンサル - サーバ-e 'CONSUL_LOCAL_CONFIG = {"skip_leave_on_interrupt":true}' -e CONSUL_BIND_INTERFACE = 'eth0'コンサルエージェント - サーバー-client 0.0.0.0 -bootstrap-expect 1 -ui -datacenter dc1 -v "/ var/lib/consul:/ consul/data" -data-dir/var/lib/consul 領事v0.7.0 プロトコル2の音声デフォルトでは、2対3を理解しています(エージェントは互換性のあるエージェントと話すときにプロトコル> 2を自動的に使用します)。 –

+1

私の答えを確認してください。私はまた、-vが間違った場所にあると言いました... – Robert

関連する問題