仮想化: 仮想マシンまたは Docker π

仮想化: 仮想マシンまたは Docker π

私は私の心の中にいくつかの曖昧さを整理したいと思います。 NATの背後にあるローカルビジネスネットワークでCentOS7を使用してベアメタルサーバーを実行しています。 CentOS7の基本ソフトウェアにはPHP 5.4.16が必要でアップグレードできないため、達成しようとしている問題を解決する必要があります。これは、独自のIPを使用して仮想マシン(VM)またはDockerコンテナ/イメージ/ストレージに複数のソフトウェアをインストールすることです。ドメインのアドレスとDNS。問題は、どんなものと一緒に働くべきかわからないということです。このシナリオではユーザー数が無限大なので、ハードウェアでボトルネックが発生しているとします。

私が理解したのは、仮想マシンは現在実行されているCentOS7オペレーティングシステムとは相互に排他的ですが、CentOS7サーバーのハードウェアで実行されている独自の「エンティティ」と同じです。

この仮想マシンに複数のソフトウェアをインストールでき、CentOS7が再起動すると自動的に起動し、IPおよびDNS設定が保存されます。

今Dockerコンテナはステートレスです。つまり、サーバーを再起動すると、コンテナ/イメージ/ストレージのすべてのソフトウェアのインストールとIPアドレス/ DNS構成が失われます。しかし、これは正確ではないようです。 VMやDockerを使って同じ結果が得られると思います。

ベストアンサー1

Dockerコンテナはその設定を覚えています。したがって、設定した内容は再起動時に復元する必要があります。docker startそれ以外の場合は自動的に再起動されます。したがって、最初にdocker run

より良いオプションは、次を使用することです。ドッカーが書いた実行する項目(ネットワークを含む)を正確に定義してください。これにより、コンテナを削除しても常に同じ設定で新しいコンテナを起動できます。


しかし、Dockerは実際には仮想マシンと見なされるべきではありません。コンテナは、システム全体ではなく個々のサービスをパッケージ化するように設計されています。

PHP 5.4.16で何かを実行する必要がある場合は、php-fpm()などのものを使用してdockerコンテナ内でPHPを簡単に実行し、docker pull php:fpmnginxまたはapacheを使用して提供できます。

必要に応じて、コンテナで実行されているプロセスとデフォルトでホストシステムで実行されているプロセスを混合して一致させることができます。

おすすめ記事