DUICUO

Docker をさらに強力にする 10 個のオープンソースツール

[[122175]]

ソフトウェアプロジェクトの成功は、多くの場合、それが育むエコシステムによって測られます。コアテクノロジーを中心として、あるいはコアテクノロジーをベースに構築されたプロジェクトは、機能性や使いやすさを向上させ、洗練度を増していく傾向があります。Dockerはその好例です。このソフトウェアコンテナ化システムにより、IT部門は仮想マシンではなく、アプリケーションを本番環境の標準ユニットとして活用できるようになります。

Dockerは常に政府とサードパーティ開発者の両方から注目を集めてきましたが、多くのプロジェクトはDockerに統合されることなく、Dockerを拡張、補完、または改良しています。以下は、現在開発中の最も注目すべき10のプロジェクトです。これらの中には、長期的にはDockerに統合される可能性のあるものもあります。

Kubernetes

サードパーティのDockerプロジェクトの議論には、Googleが開発したオープンソースのDocker管理ツールであるKubernetesが必ずと言っていいほど登場します。Kubernetesは、コンピュータクラスタ全体にコンテナをデプロイするために開発されました。クラスタ全体にデプロイされたコンテナのバランスを保つことでDockerノードのワークロード管理を支援するだけでなく、Kubernetesはネットワークポートを開いたり、その他の操作を実行したりすることなく、コンテナ同士が通信するための手段も提供します。これらの機能に加え、KubernetesがGo(Dockerと同じ言語)で記述されているという事実から、Kubernetesが将来的にDockerに統合されることは間違いありません。

プロジェクト: Kubernetes

GitHub: https://github.com/GoogleCloudPlatform/kubernetes

ドッカーシュ

ユーザーにシェルへのアクセスを許可したいが、セキュリティ上の影響を懸念している場合は、Dockersh は、シェル セッションに平均以上のセキュリティを提供する Docker 化された方法を提供します。

Dockershは、複数のユーザーがホストに接続し、各ユーザーが選択したDockerコンテナによって作成されたシェルを実行できるようにします。ユーザーは自分のホームディレクトリを表示したり、変更を加えたりできますが、自分のプロセスしか表示できず、自分のプライベートネットワークスタックしか使用できません。開発者はDockershの潜在的なセキュリティ脆弱性を懸念しており、少なくともDockerがこの点で改善されるまでは、制限のないパブリックアクセスでの使用は推奨していません。このコンセプトだけでも、このプロジェクトは注目に値します。

プロジェクト: Dockersh

GitHub: https://github.com/Yelp/dockersh

DockerUI

多くの開発者や管理者はDockerコンテナの作成と実行をコマンドラインで行いますが、DockerのリモートAPIを使用すると、REST(Representative State Transfer Protocol)APIを最大限に活用して、同じコマンドを実行できます。ここでDockerUIの出番です。このWebフロントエンドを使用すると、通常はWebブラウザのコマンドラインで管理される多くのタスクを処理できます。単一ホスト上のすべてのコンテナを単一の接続で管理でき、このプロジェクトには実質的に依存関係がありません。まだ開発が進行中ですが、MITライセンスに基づいてライセンスされているため、無料で再利用できます。さらに、組み込みの認証やセキュリティメカニズムは含まれていないため、パブリックにアクセスできるDockerUI接続は、パスワードで保護されたシステムの背後に配置するようにしてください。

プロジェクト: DockerUI

GitHub: https://github.com/crosbymichael/dockerui

造船所

Shipyardは、Citadelクラスタ管理ツールキットを使用して、複数のホストにまたがるDockerコンテナクラスタの管理を簡素化します。Webユーザーインターフェースを通じて、コンテナのプロセッサ使用量やメモリ使用量、実行中のコンテナなどの関連情報を参照したり、クラスタ全体のイベントログを確認したりできます。包括的なAPIとコマンドラインインターフェース(CLI)を備えており、特別にビルドされたDockerイメージ(拡張イメージとも呼ばれます)を使用してShipyardの機能を拡張できます。後者のアイデアはまだ開発中ですが、負荷分散/ルーティングイメージはInterlockプロジェクトから入手できます。

プロジェクト: 造船所

GitHub: https://github.com/shipyard/shipyard

カイトマティック

DockerをOS Xベースのプログラマーにとって実用的なデスクトップ環境開発ツールにすることを目指すプロジェクトは数多くありますが、Kitematicもその一つです。KitematicはDockerイメージのダウンロード、起動、管理のプロセスを簡素化し、VMware Workstationなどのアプリケーションで仮想マシンを使用するのと同じくらい簡単に使用できます。同じカテゴリのプロジェクトにはDVM、Docker OS X、OS X Installerなどがありますが、Kitematicはそれらの中で最も完成度が高いと言えるでしょう。唯一の大きな欠点は、アンインストールプロセスがやや複雑なことです。

プロジェクト: カイトマティック

GitHub: https://github.com/kitematic/kitematic

ログスパウト

Dockerには現在、Dockerコンテナ内で実行されるプログラムによって生成されるログを管理する手段がありません。BusyBoxをコアとする14MBのDockerコンテナであるLogspoutは、コンテナアプリケーションからのログを、単一のJSONオブジェクトやHTTP API経由でアクセス可能なストリーミングエンドポイントなどの中央の場所に送ることができます。情報マイニングに関しては、Logspoutは現在コンテナの標準出力(stdout)と標準エラー出力(stderr)のみを実装しており、機能に制限があります。しかし、Dockerが関連フックを提供しれば、より包括的なログ機能を実現する計画があります。このプロジェクトは今後注目に値します。

プロジェクト: ログスパウト

GitHub: https://github.com/progrium/logspout

オートドック

Docker自動化ツールは、もはや主流の製品と言えるでしょう。結局のところ、自動化の容易さこそがDockerの真髄ではないでしょうか?しかし、Autodockはいくつかの独自の機能で際立っています。SaltとSaltStackを主要な自動化技術として使用している環境で動作するように設計されており、Dockerクラスター内のどのサーバーの負荷が最も低いかを判断することで、新しいコンテナを迅速に有効化できるように特別に設計されています。唯一の欠点は、効果的に動作させるためにいくつかの基本コンポーネント(SaltStack、Golang、Etcd、Python)が必要になることです。

プロジェクト: オートドック

GitHub: https://github.com/cholcombe973/autodock

DIND (Docker-in-Docker)

Docker-in-Docker は、その名の通り、Docker コンテナ内で Docker を実行する方法です。Docker 6.0 では、コンテナに特権モードを追加することでこれを実現します。

誇大宣伝や冗談はさておき、このツールはDocker自体をDockerコンテナにサービスとして提供したい場合に役立ちます。例えば、何らかの自動化ツールやメソッドを試してみたい場合などです。Dockerの「内部」インスタンスは純粋なDockerバイナリであり、ビルド時にdocker.ioから取得できることに注意してください。また、この方法で実行されるインスタンスは特権モードで実行されるため、Docker化されていない外部環境に公開する場合は特別な注意が必要です。

プロジェクト: Docker-in-Docker

GitHub: https://github.com/jpetazzo/dind

Heroku-Docker

Herokuはかつて、多言語に対応した優れたPaaS(Platform as a Service)であり、現在でもある程度その地位を維持しています。しかし、Dockerを使えば、ほぼどこでもPaaSのような作業が可能になります。そのため、既存のHerokuプロジェクトをゼロから構築することなくDockerに移行したいと考えている方にとって、Dockerは理想的な選択肢です。このシンプルなプロジェクトでは、既存のHerokuアプリケーションをコマンドラインからDockerイメージに変換します。必要なのは、わずか数個のコマンドだけです。

プロジェクト: Heroku-Docker

GitHub: https://github.com/ddollar/heroku-docker

Docker ノードテスター

最も注目されている新しいITテクノロジーの1つを、別の最も注目されている新しいITテクノロジーのテスト手段として使う場合、何を使いますか?もちろん、Docker Node Testerです。DNTは、Dockerコンテナ内の複数バージョンのNode.jsに対してNode.jsプロジェクトを実行し、結果を表形式で出力するテストプラットフォームを提供します。また、バージョンに関係なく、最新バージョンのNodeに対してテストすることも可能です。異なるバージョンのNodeはソースコードから構築されるため、最終的にはNodeのソースコードツリー全体のローカルコピーが作成されることに注意してください。そのため、十分な保存容量があることを確認してください。

プロジェクト: Docker ノードテスター

GitHub: https://github.com/rvagg/dnt

英語: http://www.itworld.com/article/2841314/10-open-source-tools-to-make-docker-even-more-powerful.htm

[編集者のおすすめ]

  1. 大成功を収めた Docker はどのような問題を解決しましたか?
  2. Dockerとは一体何でしょうか?そしてなぜこれほど人気が​​あるのでしょうか?
  3. Fedora で Docker を使用する権限をユーザーに付与するにはどうすればよいですか?
  4. Docker と Microsoft は、コンテナーに基づくクロスプラットフォーム アプリケーション開発を可能にするための戦略的パートナーシップを結びました。
  5. Docker 自動化: StackEngine は、本番環境でコンテナを整理しておくことをどのように計画していますか?

[編集者:林思翔 TEL:(010)68476606]