本記事の要約
- DockerはLinux OSの上で動く
- なのでWordやパワポといったWin/Mac用ソフトウェアは使えない
- Dockerコンテナはアプデせずどんどん捨てる
背景
こちらの記事の続きです。
Dockerを使ってLaravelの環境構築をしようとしています。
しかしDockerが何かさっぱり分からないまま環境構築をするのもスッキリしないので、基本的理解を作ることにしました。
本記事の情報は『仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん』を参考にしています。
コメントや情報の訂正もお気軽にどうぞ!
Dockerの仕組みについて
DockerはLinux OSがないと動きません。
MacやWindowsでDockerを使っている方がいるのは、Linux OSをマシンにインストールしているためです。
よって、WordやPowerPointといったWindows/Mac用のソフトウェアをDockerコンテナ上で動かすことはできないということです。
Linux OS上で動くという仕組み上、必然的に対応するのはLinux OS向けのソフトウェアになります。
イメージとコンテナの関係について
Dockerコンテナにソフトウェアを隔離する際は、「Docker Hub」という公式レジストリを利用します。
ここではMySQLやApacheといったLinux OS用ソフトウェアのイメージ(型)が配布されています。
しかしこのイメージをそのままDockerで利用することはできません。
イメージを使ってコンテナを作成することで、Docker上で使用することができるようになります。
たこ焼き(コンテナ)を食べたいのに、たこ焼き機の型(イメージ)だけ渡されてもどうしようもないですよね。
Dockerコンテナは使い捨て
コンテナ内のソフトウェアにアップデートの必要がある際、Dockerではそのままコンテナを破棄して新しいコンテナを作ります。
その理由は、一つのコンテナを保守するより新たにコンテナを入れた方が手間がかからないためです。
Dockerではイメージを使えば簡単に最新のソフトウェアを用意できます。
そしてデータもDockerが入った物理的マシンに保存しておけるので、たとえコンテナを破棄しても内部のデータに振り回されることがありません。
Dockerのデメリットは?
メリットたくさんのDockerですが、当然デメリットも存在します。
その一つとして、Dockerを入れている物理的マシンがクラッシュすると、中のすべてのコンテナも影響を受ける点が挙げられます。
これは仮想化技術やクラウドでも同じですが、やはり「1マシン=1サーバ」の時よりも影響範囲が広くなってしまいます。
そして第二に、DockerはLinux OSを前提とした技術なので、Linux OS用ソフトウェア以外は使用できないということです。
そのため冒頭でも触れたとおり、WordやPowerPointといったソフトウェアをコンテナ化することはできません。