質問: 1. 巷には、通常のLinux用のDockerの他に、Docker for Windows、Docker for Macなど、いろいろあると思うのですが、 Dockerとは、VirtualBoxが更に軽くて早くなったものをイメージしているのですが、Dockerでは、コンテナに出来るOS(ゲストOS)は、Linux(CUIOS)だけなのでしょうか? 例えば、VirtualBoxなどの仮想マシンのように、 Docker for Macを入れたMac OS(ホストOS)に、コンテナOSとして、Windows 10(ゲストOS) をインストールして動作させることは出来ないのでしょうか? いわゆる、BootstrapやParrallel Desktopのような使い方がしたいのですが、それはDockerでは土台無理な話なのでしょうか? また、その他にも、Docker for Windowsを入れたWindows10に、コンテナOSとして、Ubuntu(ゲストOS)やCentOSなどをインストールして動作させることは出来ないのでしょうか? 2. また、Dockerは、1つのコンテナでは、複数のサービス(プロセス)は実行できず、 Dockerでは、必ず1つのコンテナでは、単一のサービス(プロセス)しか実行出来ないとあるのですが、 これは、ちょっとイメージしづらいのですが、いわゆる、WindowsやMacなどで言うところの、 単一のアプリやプログラムしか動作させることが出来ないという理解でよろしいのでしょうか? 3. その他に、Dockerは、Virtualboxのような使い方をすることは、土台無理な話なのでしょうか? 例えばですが、Dockerの特徴として、終了時に変更を保持してくれない仕様ですが、これを変更を保持するように設定することも可能なのでしょうか?
回答: 1. DockerというのはLinuxの機能です。 LinuxOS下で動くユーザープロセスの一群を、コンテナという壁で覆って、壁の外が見えない状態で動作させる物です。 なので、VirtualBoxのように、仮想PCをシミュレートするものとは根本的に異なります。 将来的に、Windowsネイティブコンテナみたいな物が出て来る可能性はあるのかも知れませんが、Docker for WindowsもWindowsの中でLinuxを動かしてその中でコンテナを作ります。 2. そんなことはないです。 3. > > Dockerは、Virtualboxのような使い方をすることは、土台無理な話なのでしょうか? > > > そもそも別物なので、無理です。 > > 例えばですが、Dockerの特徴として、終了時に変更を保持してくれない仕様ですが、 > > > 壁の中のファイルを更新することは可能です。起動時に上書きして起動すれば消えてしまいますので、上書きしないよう、保存用エリアを指定します。