私のラップトップ(x86_64)とラズベリーPis(armhf)のクラスターの両方で、分散アルゴリズムを新しいdocker swarm modeでテストしたい。いくつかのシステムアーキテクチャーを持つswarmでdockerサービスを実行する
設定が完了したら、1つのマネージャノード(ラップトップ)とN + 1ワーカーノード(N個のラスププラスラップトップ)で構成されたswarmクラスタを作成できます。それはそのようになっていますx86_64版の1(my_project:x86_64
)、およびarmhf 1(my_project:armhf
):
laptop$ docker swarm init --advertise-addr 192.168.10.1
raspi1$ docker swarm join --token <TOKEN> 192.168.10.1:2377
# [...]
raspiN$ docker swarm join --token <TOKEN> 192.168.10.1:2377
、私は私のプロジェクトのための2枚の画像を構築しました。私は実際にはM(準)独立ノードを作成することが私の望むものであるので、この新しい群モードからノード/サービスアーキテクチャが大好きです。docker service create ...
コマンドを使って正しいノードに正しいイメージを与えるにはどうしたらいいですか?
私が見るところでは、docker service create
はパラメータとして1つの画像しか取りません! I saw here私は各ノードにラベルを付けることができ、この特定のラベルを持つノードだけを使用するようにサービスに依頼することができますが、それは私が望むものではありません。私は、アーキテクチャによって分割されたタスクの2つのクラスターを管理することになり、swarmモードのスケジューラーとディスパッチャーを利用したいとの私の望みが崩れてしまいます。
私は携帯性の彼の探求に悲しいオタクです、それは私です!
PS:docker swarmとdocker swarm modeは2つの異なるものであるため、これは 'docker-swarm-mode'というタグを持っています。
答えてくれてありがとう@marcosnils、私はそれを待っていました! :)私のプロジェクトのバイナリを静的にリンクすると、あなたのハックは正当だと思われます。 [このチュートリアル](https://eyskens.me/multiarch-docker-images/)は、それが正しいとすれば、そのようなハッキングの王を達成しているようです。それ以外は、[マルチarchイメージ](https://hub.docker.com/r/multiarch/goxc/)について知っていますか?私は彼らが達成していることを正確に理解していませんでした。例は見つけられませんでしたが、これはコンテナ内にアーキテクチャごとのビンを構築するのに役立つでしょうか?とにかくおかげさまで、あなたはあなたの恩恵を受けました! –
ちょっと@AdrienLuxey !.あなたが共有したチュートリアルのようなものは、別の目的のためです。基本的には、qemuをローカルに依存する複数のアーチを構築することができます。レジストリに異なるタグを付けることもできます。私は複数のレポについて知っています。基本的には、マルチアーチ画像を作成する簡単な方法を提供していますが、各画像はレジストリ内の異なるタグになります。 もちろん、これらのツールのいくつかを使用して、内部に複数のアーチのバイナリを持つイメージを構築することはできますが、多少の作業が必要になることがあります。 – marcosnils
@AdrienLuxeyには良いニュースがあります。ドッカーのCLIが公式にビルドをサポートするまで、サードパーティ製の外部ツールを使用してマルチアーチイメージを作成できるようになりました。 https://integratedcode.us/2016/04/22/a-step-towards-multi-platform-docker-images/を確認してください。 ドッキングエンジンとレジストリは現在この形式をサポートしています。したがって、マルチアーチのイメージをレジストリにプッシュしてswarmで実行すると、それが動作するはずです。 – marcosnils