2017-08-30 5 views
0

私はSwarm(Docker)、serviceG、serviceRに追加するマシン上で2つのサービスを実行するはずですが、serviceGはグローバルモード、serviceRは複製モードです。Docker Swarmマシンの起動時に新しいマシンが 'レプリケート'サービスのイメージを取得しない

ドッカーswarmに新しいマシンを追加すると、serviceGのイメージが自動的にプルされますが、serviceRのイメージは自動的にプルされません。

他のマシンでserviceRのコンテナを1つ削除すると、新しいマシンでイメージが取得され、新しいマシンでコンテナを起動できるようになりました。

イメージは同じリポジトリに格納されます。

私はとき、マシンスタートを引いドッカーを使用することができますが、私はプルを自動的に行うことがしたいのですが、新しいマシンがサービスR.

答えて

1

のイメージのために群れに参加するとき、これは設計通りに機能しています。スウォームモードは、スウォームの作業負荷を早めに再調整しません。そうすることで、作業負荷がフラップまたは他の機能不全のノードに再スケジュールされ、一般にサービスの可用性が低下する可能性があります。

手動であなたのサービスをリバランスするためにローリング更新を強制する必要がある場合は、あなたが実行することができます:あなただけそれを実行した画像を引っ張っていないしたい場合は

docker service update --force your_service_name 

、新しいノードに直接ログインすることができますそしてdocker pull your_image_nameを実行してください。

+0

答えていただきありがとうございます。私は 'docker service update --force your_service_name'を使うことができませんでしたが、今はSwarmの動作がなぜそうなったのか知っています:) – Nolyurn

関連する問題