Dockerとは
コンテナ型の仮想化環境です。
Dockerの特徴
そこそこDockerを使っていますが、他と比べた特徴は以下のようなものです。
- 再現性が高い
- ビルド・実行が高速
- ゲストOSに制限がある
再現性が高い
ビルド済みのイメージの場合は、 オプションが同じならほとんど同じように動きます。
ビルドする時も、前提となるパッケージが更新されることによって ズレる可能性はありますが、他の方法と比べると、再現性が高いです。
再現性が高いため、バグ報告に使われることもあります。
ビルド・実行が高速
VMを1から起動するのに比べると、実行が高速です。 ビルドも1度行ったものはキャッシュして再利用するため、高速です。
ゲストOSに制限がある
Dockerの最大の弱点は、ゲストOSに制限があることです。 Linuxカーネルの機能をフルに利用しているため、基本的にはLinuxのみです。 例外的にWindowsでは、Windowsをゲストに使うことができるようです。
イメージ
- Official repositories on Docker Hub | Docker Documentation
- Dockerベースイメージの特徴と比較・選び方 - Qiita
- Linuxコンテナイメージの選び方
どれを選ぶか正直悩むところです。
- Docker公式(Debian)
- 慣れているOS(CentOS)
- 軽量OS(Alpine)
いろいろ使ってみましたが、基本的にはDebianで、慣れてきたらAlpineかなと思います。 Debianは慣れが必要だが、それほど難しくないです。 慣れが必要なのも、OS特有のロケールやタイムゾーンの扱いくらいですね。
ネットワーク
公式サイト
外部サイト
- Docker入門 (全11回) - プログラミングならドットインストール
- DockerでMySQLのデータを保存する方法 - Qiita
- DockerとData Volume Containerのお話 - Qiita