コンテナ
コンテナは、ソフトウェアの実行に必要なものをすべて含むソフトウェアパッケージです。これには、実行可能なプログラムだけでなく、システムツール、ライブラリ、設定も含まれます。コンテナは従来のソフトウェアプログラムのようにインストールされないため、ほかのソフトウェアやオペレーティングシステム自体から分離できます。
コンテナが分離されていることには、いくつかのメリットがあります。まず、コンテナ内のソフトウェアは、異なる環境でも同じように動作します。たとえば、PHPとMySQLを含むコンテナは、LinuxコンピューターでもWindowsマシンでも同じように動作します。次に、ソフトウェアがホストのオペレーティングシステムに影響を与えないため、コンテナはセキュリティを高めます。インストールされたアプリケーションは、Windowsのレジストリなどのシステム設定を変更したり、リソースを変更したりする可能性がありますが、コンテナが変更できるのはコンテナ内の設定だけです。このため、コンテナはソフトウェアのテストや開発に適しています。
コンテナを使うと、システムの競合、バージョンの互換性問題、依存関係の不足など、インストールに関する問題もなくなります。その結果、開発者とエンドユーザーの両方に適した、「すべてのマシンで動作する」ソリューションが実現します。また、ネットワーク管理者は互換性の問題を心配せずに複数のユーザーへコンテナを提供できるため、作業も簡単になります。
コンテナと仮想マシンの違い
コンテナは、実行に必要なものを1つのパッケージに含むという点で、仮想マシン(仮想化)と似ています。ただし、仮想マシン(VM)とは異なり、コンテナにはゲストOSが含まれません。代わりに、コンテナはオペレーティングシステムにインストールされたDockerなどの「コンテナプラットフォーム」上で動作します。コンテナは「軽量」です。つまり、VMよりも必要なディスク容量がはるかに少なくて済みます。さらに、同じコンテナプラットフォーム上で複数のコンテナを並行して実行できます。
知識をテストする