Docker - 手軽に使えそうな仮想環境を試してみた
Docker は Linux上で動作するコンテナー型と呼ばれる仮想化ソフトウェア。
ハイパーバイザー型に比べて、OS起動時のオーバーヘッドが少なくとても早い。
いまさら聞けないDocker入門(1):アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識 - @IT
用語の整理
インストール・起動・設定
今回は CentOS-6.5 上で実行。
yumの EPELリポジトリ にはいている。
$ sudo yum install docker-io -y $ sudo /sbin/service docker start $ sudo gpasswd -a <user> docker $ docker info Containers: 0 Images: 0 Storage Driver: devicemapper Pool Name: docker-253:0-1967542-pool Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 291.5 Mb Data Space Total: 102400.0 Mb Metadata Space Used: 0.7 Mb Metadata Space Total: 2048.0 Mb Execution Driver: native-0.20 Kernel Version: 2.6.32-431.20.3.el6.x86_64
docker グループに追加しているのはsudoせずに実行できるようにするため。
centos7 のベースイメージをダウンロード
Docker Hub Registry - Repositories of Docker Images から Pre-build image をダウンロードできる。
今回は centos7 をインストール。
$ docker pull centos:centos7
docker コンテナを起動
コンテナ名を centos7_test としている。
今後の操作に必要となる。
$ docker run -it --name centos7_test centos:centos7 /bin/bash bash-4.2# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core)
OS の起動がないのですごい速い・・・。
Ruby を入れてみた。ダウンロードの時間はともかくインストールはすぐ終わる。
bash-4.2# yum install ruby -y ((いろいろ)) bash-4.2# ruby --version ruby 2.0.0p353 (2013-11-22) [x86_64-linux]
Ctrl-d か、exit で抜けられます。コンテナは自動停止する。
bash-4.2# exit
停止中のコンテナを起動する
$ docker start -i centos7_test $ docker attach centos7_test bash-4.2#
docker コンテナ一覧の表示
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 896d0972763b centos:centos7 /bin/bash 7 seconds ago Exited (127) 2 seconds ago centos7_test
コンテナを削除する
$ docker rm centos7_test
手軽にできるので余計な手を煩わせず開発に集中できそう。