Skip to content

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
    

■ 参考サイト