2017-10-27 5 views
0

3つのノードに複製されたNGINX Dockerサービスの設定ファイルを編集したいとします。Docker swarmでコマンドまたはシェルを実行する方がいいですか

現在、私はdocker service lsを使用してサービスをリストしています。

次に、docker serivce ps servicenameを使用して、そのサービスのコンテナを実行しているノードを見つけるための詳細を取得します。

次に、いずれかのコンテナが実行されているノードにsshを実行します。

最後に、docker exec -it containername bash。次に、設定ファイルを編集します。

つの質問:

  1. コンテナを実行しているノードにというよりも、SSHこれを行うには良い方法はありますか?たぶん、それを行うための群れやサービス命令がありますか?
  2. 1つのコンテナでその設定ファイルを編集すると、その変更はswarmの他の2つのコンテナに複製されますか?

この練習の目的は、サービスをシャットダウンすることなく構成を編集することです。

答えて

0

設定を変更するためにコンテナに実行してはいけないので、ドッカーはスウォームモードでこれを行う簡単な方法を作成していません。あなたは、他のホストにsshする必要性を避けるために古典的な群を使用することができますが、私はまだこれをお勧めしません。

これを行う正しい方法は、構成ファイルをdocker configエントリに移行することです。設定名を変更してください。次に、それを更新する場合は、希望する変更を加えた新しいバージョンを作成し、その新しい構成を使用するためにサービスのローリングアップデートを実行します。

configがNFSなどの外部ソースからマウントされていない限り、1つのコンテナ内の1つの設定に対する変更は、他のノードで実行されている他のコンテナには適用されません。その設定が、内部コピーオンライトファイルシステムの一部としてコンテナ内にローカルに保存されている場合、他のコンテナでは変更できません。

関連する問題