Docker¶
■ Dockerとは¶
Linuxのコンテナ技術を使った、コンテナ仮想化ツール。
アプリ操作をコンテナ毎に分けて実行したり、別のOS上にコンテナを移しても動作するよう働く。
コンテナはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができる。
そのため、軽量で高速に起動、停止などが可能。
■ 仮想化とは¶
1台のPCで複数のOSを同時に動かすことができる技術のこと。
■ 仮想化の種類¶
1、ホスト型(VMware Player、Oracle VM VirtualBoxなど)
ユーザー向けの仮想化。
仮想化をアプリケーションとして利用するタイプの事。
専用のソフトウェアの上で別のOSを動かすもの。
既存のOS上で別のOSを動かす。
Linuxの専用端末が用意できない時や、別のOSを動かしたい時などに利用する。
2、ハイパーバイザ型(VMware ESXi、Windows Hyper-V、Xen、KVMなど)
サーバ向けの仮想化。
OSそのものに仮想化システムを組み込む。
仕組みはホスト型と同じようなもの。
PCの大元のOSにハイパーバイザー専用のOSを入れたり、専用のパッケージを導入する事で、そのOSをの上で仮想マシンを作成できるようする。
3、コンテナ型(Docker)
コンテナ型仮想化。
軽量さが売り。
ホスト型やハイパーバイザー型と違い、ホストのカーネルを直接使用するため、オーバーヘッドが小さくなる。
■ 他の仮想化と比べる¶
コンテナ型 | ハイパーバイザー型 | ホスト型 | |
---|---|---|---|
主なブランド | Docker | KVM | Vmware / Virtual Box |
起動速度 | 早い(秒速) | 比較的遅い(分速) | 比較的遅い(分速) |
移動のしやすさ | ◎ | △ | △ |
専用プログラムサイズ | 小 | 比較的大 | 比較的大 |
仮想マシンに利用可能なOS | 選択できない(共通OS上で動作しているため) | 何でも可能 | 何でも可能 |
セキュリティ | △(共通OS上で動作しているため) | 比較的〇 | 比較的〇 |
■ Docker HUBとは¶
ユーザーが作成したコンテナをアップロードして公開・共有できるサービス。
ここで公開されているコンテナは自由にダウンロードして自分のサーバーに簡単にデプロイできる。
公開されているコンテナは「リポジトリ」という単位で管理され、タグを使ったバージョン管理も可能。
■ Dockerコマンド集¶
-
動いているコンテナの確認
1
$ docker ps
-
停止しているコンテナの確認
1
$ docker ps -a
-
コンテナの削除
1
docker rm <コンテナID>
-
停止コンテナの一括削除
1
docker rm docker ps -a -q
-
全コンテナの一括削除
1
docker rm -f docker ps -a -q
-
イメージの削除
1
docker rmi <イメージID>
-
再起動
1
$ docker restart <コンテナID>
-
再度コンテナに入る
1
$ docker attach <コンテナID>
-
コンテナを出る
1
$ exit