Dockerは非常に人気が高まっています。エンドユーザーとして使用したのは3回だけで、期待どおりに機能することはありません。しかし、それが機能すると仮定して、実際の利点をいくつか挙げていただけますか?たとえば、インストールスクリプトと比較してください(VMのオーバーヘッドとVM-ホスト通信の問題を考慮してください)。
2つのユースケースがあります。
より支配的な2番目のケースを見てみましょう。開発者がソフトウェアをdockerでパッケージ化するのに、それをすべて行うインストールスクリプトを提供でき、追加のオーバーヘッドや学習曲線なしにスクリプト可能な展開ができるのはなぜですか?または、Dockerは主に上記の最初のユースケースに役立ちますか?
Dockerの主な利点は、完全にデプロイ可能なアプリケーションをビルドアーティファクトとして作成できることです。デプロイ可能なアプリケーションは、本番イメージとして昇格する前に正しく動作することを確認するテストスイートを介して実行できます。
これはインストールスクリプトとは大きく異なります。テストは本番環境の前に行われ、変更の影響が少ないためです。
私は、Dockerをエンドユーザーにソフトウェアを配布するための優れたソリューションとは考えていません。私はそれをあなた自身のクラウドコンピューティングインフラストラクチャの内部ソフトウェアと考えています。
VMとコンテナーの議論については、多くのCSP(クラウドサービスプロバイダー)が単一のVMを単一のDockerホストにするコンテナー製品を構築しているようです。これは、コンテナーの追加のセットアップとその下のVMの粗い割り当てが必要なため、すべての世界で最悪のようです。安全なコンテナーネイティブインフラストラクチャは、Dockerを運用環境で実行しているすべての顧客が要求する必要があります。少なくとも、コンテナベースの割り当てと、物理マシン全体でのコンテナの透過的な配布が不可欠です。