まず、Dockerはアドホックパッケージシステムとして見られ、使用されることもありますが、実際にはまったく異なる問題を解決します。Dockerはプログラムの実行に関するものです。ドッカーシステムを記述することを可能にするサービスことができるスケーリング自由にし且つ制御するために、群れの容器を。Debianパッケージはプログラムをインストールするためのもので、ソフトウェアバージョン間の依存関係を処理できます。 Docker 確かに、下降パッケージングシステムとしての資格はありません。各「パッケージ」は1つの依存関係のみを持つことができ、システムには「再帰ビルド」オプションがなく、複雑なバージョン制約をサポートしません!
可能な答えは、アプリケーション用のDebianパッケージを作成する場合は、Dockerを使用してアプリケーションをデプロイすることもできます。これは、次のような構成スクリプトapt_setup.sh
で実現できます。
apt-key add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
<YOUR RELEASE OFFICER PGP KEY GOES HERE>
EOF
cat >> /etc/apt/sources.list <<EOF
deb https://my.organisation.org/repo debian-jessie main
apt-get update -y
apt-get upgrade -y
EOF
とDockerfile
の線に沿って
ADD apt_setup.sh /root
RUN sh -ex /root/apt_setup.sh && rm /root/apt_setup.sh
RUN apt-get install -y my-node-js-package
(特定の状況ではapt_setup.sh
、nodesourceリポジトリとapt-transport-httpsなどのヘルパーパッケージを追加して、より複雑になります。)
したがって、DebianパッケージとDockerを同時に使用することは本当に可能ですが…
私の直感[…]は、debパッケージが適切であれば、より一般的だと言っています。
これは、Dockerがアドホックパッケージシステムとして人気があることを証明しているのに、なぜそうなるのではないのかを自分自身に問う正しいヒッチです。(上記を参照。)
特定のディストリビューションの「公式の」パッケージングシステムは、他の多くのユーザーの間で、一部のコンピューティング環境にソフトウェアをインストールする可能性にすぎません。npmやopamなどのコミュニティ固有のパッケージマネージャー、pkgsrcなどのポートツリー、プレーンなソースコード配布など、他にも多くのソースが利用可能です。この観点から、アドホックパッケージシステムとしてのDockerの成功を理解するのは簡単です。
今の強さ何Debianパッケージは、上ドッカー画像パッケージシステムとして?インストール時の依存関係の厳密な制御。(アップグレードとダウングレードの可能性もありますが、不変サーバーパターンを実装している場合、実用的な重要性はありません。)これは、
結論
単一のバージョン(SaaSで一般的)に単一の製品のみがデプロイされている場合、バージョン管理のニーズは非常に単純であり、アドホックパッケージマネージャーとしてDockerを使用することには大きな欠点はありません。単一の製品または複数の製品の複数のバージョンを使用するとすぐに、解決する必要があるバージョン制約の問題の複雑さが増し、このための適切なツールが必要になります。Debianパッケージまたは構成管理システム異なる起源のソフトウェアをミキシング。