問題タブ [docker-swarm]

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.

0 投票する
1 に答える
128 参照

docker - Marathon を使用して Docker Swarm で Docker コンテナを実行していますか?

Docker Swarm と mesos の統合に成功し、すべてが順調に進んでいます。

しかし今では、次のようにコマンド ラインからのみ Docker swarm でコンテナーを起動できます。

クラスターでのジョブ スケジューリングに Marathon を使用しています。Marathon を使用して mesos と統合された docker swarm で docker コンテナを起動する方法はありますか?

Marathon 以外のスケジューラでそれを行うことは可能ですか?

0 投票する
2 に答える
113 参照

docker - Docker Swarm Master は個別の物理ノードにする必要がありますか?

私はDocker Swarmに取り掛かっていますが、答えが見つからない質問があります...

3 つの物理ホストがあり、クラスターを作成したいと考えています。別の (4 番目の) 物理ホストを使用して Swarm マスターを実行し、もう 1 つを KV ストアに使用する必要がありますか?それとも、これら 3 つのホストのいずれかで実行し、それらすべてを Swarm ノードとして使用することができますか?

ありがとう。

0 投票する
0 に答える
365 参照

ubuntu - AWS ubuntu マシンで docker swarm クラスターをセットアップする方法

以下のエラーが発生します。swarm クラスタでコンテナを作成して実行中。

私が従った手順。

  1. One VPC を作成し、すべてのポート番号を許可するセキュリティ グループを追加しました。

  2. AWS で 3 つの ubuntu マシンを作成しました (manager、slave1、slave2)

  3. まず、以下のコマンドで Consul ノードを起動しました

    docker run --restart=unless-stopped -d -p 8500:8500 -h consul1 progrium/consul -server -bootstrap

  4. 次に、同じマシンでスウォームマネージャーを開始しました

    docker run --restart=unless-stopped -d -p 3375:2375 swarm 管理 consul://172.31.17.163:8500

  5. 次に、2つのスレーブを追加しました

    docker -H=tcp://slave1ip:2375 --restart=unless-stopped run -d swarm join --advertise=slave1ip:2375 consul://172.31.17.163:8500

    docker -H=tcp://slave2ip:2375 --restart=unless-stopped run -d swarm join --advertise=slave2ip:2375 consul://172.31.17.163:8500

  6. スウォームマネージャーマシンに領事店を追加

    DOCKER_OPTS="--cluster-store=consul://172.31.17.163:8500 --cluster-advertise=eth0:2375 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker 。靴下"

ドッカー情報

export DOCKER_HOST=tcp://172.31.17.163:3375

docker run ハローワールド

それは完璧に実行されました。そして、コンテナがスプレッド戦略でスレーブを作成しているのを見ることができます

今、私はただ作成しようとしています

docker-compose.yml

docker-compose up

これは次のエラーを言います。

同じエラーが発生します

docker network create -d overlay myapp

問題は、これが現在の構成でオーバーレイネットワークを作成していないことです。

このエラーを解決するにはどうすればよいですか?

0 投票する
3 に答える
8856 参照

docker - オンデマンドの Docker コンテナの起動を実装する

状況: しばらくの間、定期的に攻撃を受け、その後長期間使用されないままになる、多くの重いドッカー コンテナ。

Wish: コンテナーをオンデマンドで開始し (systemd がソケットのアクティベーションを通じて開始するように)、一定期間アイドル状態になった後にコンテナーを停止します。エンドユーザーに目に見えるダウンタイムはありません。

オプション:

  • Kubernetes には、レプリカをスケーリングできるリソース コントローラーがあります。レプリカの数を 0 に保ち、必要に応じて 1 に設定することは可能だと思いますが、どうすればそれを達成できますか? ユーザー ガイドには、自動スケーリング コントロール エージェントと呼ばれるものがあると書かれていますが、これに関する詳細情報はありません。リクエストを追跡し、ユーザー定義のロジックに基づいてスケーリングするために使用できる、プラグイン可能でプログラム可能なエージェントはありますか?
  • Docker Swarm には解決策がありません。間違っている場合は修正してください。
  • docker デーモンにアクセスできる、選択した言語で記述されたカスタム http サーバーを使用します。正しい場所にルーティングする前に、コンテナーの存在を確認し、実行中であることを確認します。欠点 - 一般的な解決策ではありません。コンテナーにする必要はなく、デーモンにアクセスする必要もありません。
  • ここで説明されているように systemd を使用します。上記と同じ欠点があります。つまり、一般的ではなく、ネットワーク タスクを自分で処理する必要があります (生成されたコンテナーの IP を見つけて、サーバー/プロキシの構成にフィードするなど)。

どんなアイデアでも大歓迎です!

0 投票する
1 に答える
430 参照

nginx - docker swarm にアプリケーションをデプロイし、その IP アドレスを A レコードに公開する方法

nginx を使用して docker swarm クラスターを正常にセットアップしました。私のec2インスタンスで。このチュートリアルを使用して

https://botleg.com/stories/load-balancing-with-docker-swarm/

私はこのように使用しています

マネージャー 1

ノード 1

ノード 2

サービス検出のために登録者と一緒にコンソールを使用しています。

Consul Machine docker run --restart=unless-stopped -d -p 8500:8500 -h consul progrium/consul -server -bootstrap

Swarm Manager docker run --restart=unless-stopped -d -p 3375:2375 swarm manage --replication --advertise=mangerip:3375 consul://consulip:8500/

docker run --restart=unless-stopped -d --name=registrator -h=host --volume=/var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator:latest consul://consulip: 8500

Node1 docker run --restart=unless-stopped -d swarm join --advertise=node1ip:2375 consul://consulip:8500/

docker run --restart=unless-stopped -d --name=registrator -h=host --volume=/var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator:latest consul://consulip: 8500

Node2 docker run --restart=unless-stopped -d swarm join --advertise=node2:2375 consul://consulip:8500/

docker run --restart=unless-stopped -d --name=registrator -h=host --volume=/var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator:latest consul://consulip: 8500

私の Dockerfile

start.sh

デフォルト.ctmpl

docker-compose.yml

これに関する問題は、Docker がノードを自動的に選択するため、A レコードを指す必要がある IP アドレスです。

これを初めて実行すると、最初のノードが選択される場合があります。これを削除してすべての手順をやり直すと、別のノードと別の IP が選択されます。そのときは A レコードを変更する必要があります。この問題をどのように解決するか、

私はそれをグーグルで検索し、waglを見つけました。これにより、DNS ベースのサービス検出が可能になりました。これは素晴らしいことです。しかし、それは非常に基本的なものだったと思います。それが本番環境にあったかどうかはわかりません。

AからZまでの流れ、つまり、展開からAレコードへのIPアドレスの設定までを行う方法を誰か教えてください。または、リンクを教えてください。

0 投票する
0 に答える
907 参照

docker - Docker Swarm 配布ビルド イメージ

状況:

2 つのエージェントを持つ docker swarm があります。docker swarm メイン デーモンは、私のマネージャー ホスト (docker-machine サンプル セットアップ) で--strategy randomオプション付きで実行されます。

手順:

  • docker swarm manager 接続を使用して新しい docker イメージをビルドします docker -H tcp://$(docker-machine ip manager):3376 build -t test123 .

  • マネージャー接続を使用して複数のコンテナーを起動します docker -H tcp://$(docker-machine ip manager):3376 run -d test123 sleep 20 docker -H tcp://$(docker-machine ip manager):3376 run -d test123 sleep 20 docker -H tcp://$(docker-machine ip manager):3376 run -d test123 sleep 20 docker -H tcp://$(docker-machine ip manager):3376 run -d test123 sleep 20

Docker コンテナーは、イメージのビルドにも使用されたホスト上で常に実行されます。

ビルド イメージを他のホストに自動的に配布する方法はありますか?

Dockerレジストリを使用してイメージをプッシュアンドプルするだけでよいことは知っていますが、これは避けたいです。

私が見つけた別の解決策は、画像を tgz に保存してインポートすることでした。docker-swarm ホスト (マネージャー) でインポートすると、イメージがすべてのエージェントに自動的に配布されます。(少なくともこれは私が観察したものでした)

おそらく別のオプションがありますか?