Dockerイメージの作成を開始します。私は、Amazon Linuxマシンに配備した.net Core 2.0 Web APIサービスを持っています。それは正常に動作しますが、ビルドとデプロイメントのプロセスを少し自動化したいと思います。ホストにインストールする必要があるすべてのソフトウェアがある場合、なぜLinuxディストリビューションをDockerfileベースとして提供するのですか?
私が考える限り、私が構築する必要のある画像のための親画像は必要ありません。ある場所からいくつかのファイルを取得し、いくつかのdotnet CLIコマンドを実行し、Apacheをリバースプロキシとして使用してサービスを実行するかもしれません。私は本当にそれのいずれかで親画像の必要性を見ていない。
私が見た例のほとんどに基本イメージが含まれているので、私はこの質問をしています。たいていの場合、「From Ubuntu」のような非常に一般的なものです。私は、ほとんどの画像に親画像が含まれることを読んでいます。 Dockerのドキュメントによると、
親画像は、画像の元になった画像です。 DockerfileのFROMディレクティブの内容を参照します。 Dockerfileのそれ以降の各宣言は、この親イメージを変更します。ほとんどのDockerfilesは、ベースイメージではなく親イメージから開始します。しかし、これらの用語は、時々交換可能に使用されます。
正確にUbuntuを継承するポイントは何ですか? Dockerのドキュメントでさえ、Debianを「非常に厳密に制御され、最小限に抑えられているので」と示唆しています。それはあなたのLinuxマシンにUbuntuディストリビューションがあることを保証しますか? Amazon Linuxを使用していてDebianイメージをベースにしていても問題はありますか?
ディストリビューションから来ていない場合は、どこから*ソフトウェアを入手することが期待されますか? Apache HTTPDを実行しているとします。実際にOpenSSLのコピーであるlibcをリンクする必要があります。もしあなたが 'apt-get'(または' yum'や他のパッケージマネージャー)を持っていなければ 'apt-get install apache'を実行することはできません。 –
...あなたが持っていないディストリビューションに最も近いのは[Buildroot](https://buildroot.org/)のようなもので、それでもまだディストリビューションです(コンパイル時に、バイナリパッケージが含まれていなくても、仕様どおりにすべてをビルドします)。 –
(まあ、[Linux from Scratch](http://www.linuxfromscratch.org/lfs/)ですが、代わりに実際のディストリビューションを使用するポイントを知りたい場合は、それを試してみてください。素晴らしい学習経験ですが、実際の仕事を手助けするものではありません)。 –