問題タブ [docker-stack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - スタック サービス コンテナーの動的ホスト名
Docker Cloud から純粋な Docker Swarm セットアップに移行しています。私が見逃していることの 1 つは、コンテナーがホスト名を$SERVICE_NAME-$SLOT_NUMBERとして設定する方法です。
swarm スタック サービスでホスト名/コンテナー名を動的に設定することは可能ですか?
docker - スタック サービスは、特定のインターフェイスのポートを公開しますか?
Digital Ocean でスタックを実行しています。セキュリティを向上させるために、docker swarm はすべてドロップレットのプライベート ネットワーク (eth1) で実行されます。パブリック IP ではなく、プライベート IP で公開したくない管理サービスがいくつかあります。
特定のインターフェイスでポートを公開することは可能ですか? または、プライベート IP のポートのみを公開する別のイングレス ネットワークを作成することは可能ですか?
現在の回避策は、これらのサービスを通常のコンテナーとして実行し、プライベート IP アドレスでポートを公開することです。
docker - docker ノードのサイズを超えてサービスをスケーリングすると、どのような影響がありますか?
docker swarm モードで 3 つのノードがあります。
1 つのマネージャー ノードと 2 つのワーカー ノード
ここで2つの疑問がありますか?
サービスを現在のノードよりも多くの数にスケーリングすると、どのような影響がありますか。( 1 つのサービスを 5 または 6 にスケーリングするとします)
サービスがマネージャー ノードでのみ実行されなければならないという制約があり、マネージャー ノードの数よりも大きい数をスケーリングする場合、スケールはどうなりますか (たとえば、3 にスケーリングします)。
マネージャー ノードで実行するように docker-compose で定義された制約配置を持つマネージャー ノードで mysql サービスを実行しています。これは、ノードが 3 つしかないのに6にスケーリングしようとしたときに見られる効果です。docker service logs
は 4/6 の実行を示しており、 6/6 と 5/6 を示す変動もあります。
ここで docker-compose.yml
docker - docker compose はコンテナを作成しませんが、エラー メッセージは表示されません
Ubuntu 17.10 で公式の Docker CE (バージョン 18.03.1-ce、ビルド 9ee9f40) チュートリアルを実行していますが、こちらで説明されているサービスの実行に問題があります。 サービスは開始されませんが、Docker は理由を教えてくれません。
問題の説明
サービスを開始すると、次のようになります。
エラーは返されず、終了ステータスは 0 で、異常はありません。ただし、スタックに関する情報を取得すると...
CURRENT STATE
列は拒否で完全に埋められます。切り捨てられたエラーはすべて言う"container ingress-sbox is already present in sandbox ingress_sbox"
。個々のコンテナーを一覧表示すると、次のようになります。
ただし、コンテナーを単独で (つまり、swarm やスタックではなく) 実行すると、期待どおりに動作します。
関連ファイル
Dockerfile
docker-compose.yml
app.py
docker - あるスタックから別のスタックへのサービス間の Docker 通信
さまざまな Docker スタックを使用して、単純なサービス検出シナリオを試しています。
2 つのスタックがあるとします。簡単にするために、私はそれらをstackAとstackBと名付けています。StackA には「serviceA」というサービスがあり、StackB には「serviceB」というサービスがあります。ServiceA と serviceB には単純な RestApplication があります。
ここで、serviceA から serviceB を呼び出したいと思います。docker サービス検出の概念を理解し、docker の公式ドキュメントに従いましたが、serviceB を呼び出すことができません。 別のスタック上のサービスまたはコンテナーの検出
公式ドキュメントによると、私はserviceB.StackBを使用していますが、できませんでした。
理由を理解できません。いくつかのポイント:
1.各スタックが独自のネットワークを作成します。両方のスタックが同じネットワークにないために発生していますか?
2. 別のネットワークでのみ必要な場合、別のサービスを呼び出すにはどうすればよいですか?
docker - docker stack deploy の結果、次のイメージが生成されますタグとさまざまな画像サイズ
これ<none>
で、 で画像にタグが付くのは正常なことだと理解docker stack
できますが、なぜ画像サイズがタグ付けされたものと異なるのかわかりません。これに関する情報が見つからなかったので、stackoverflow に質問を投稿することにしました。誰でもこれを説明できますか?
これは docker-stack.yml ファイルです。
ちなみに、この構成は機能しません。私は docker swarm とその構成を学習中です。