【Docker入門】コンテナ型仮想化技術Dockerを使ってみた
はじめまして!!
ブラジル人だけどサッカーが全くできないビトルです!
今回はdockerの仕組みや使い方をかるーく紹介したいと思いまーす!
関連 【初心者】Docker for Windowsをインストールする方法
目次
目次
Dockerとは?
Dockerは、Docker社が開発しているオープンソースのコンテナ型仮想化ソフトウェアです。
Linux上でLXC(Linux Container)の技術を活用し、コンテナ型の仮想環境を作成します。
コンテナ? なにそれ? ってなりますよね・・・
コンテナというのは簡単に言うとWebサーバーなどのアプリケーションの実行環境を抽象化する技術です。
そういえばVMwareなどのハードウェア仮想化ツールもありますよね?
それとの違いは何だろう?
こうしてみるとアプリ毎に仮想の物理マシンとその上で動作するゲストOSを立ち上げてるハードウェア仮想型のツールより、ローカルのマシンのOSを共有して各アプリをコンテナごとに立ち上げているDockerの方が利用しているリソースが少なさそうですね。
他にもDockerにはいくつかの特徴・利点があります。
特徴・利点
- Go言語で書かれている
- パフォーマンスが物理マシンとほぼ変わらない
- Linuxカーネルを使っている環境であればどこでも動作する
- 環境の変更・作り直しが容易にできる
- 開発用の環境がすぐに用意でき、かつ本番環境と同じものを利用できる
- Dockerfileを利用してインフラの設定をコードベースで管理できる
なかなか便利そうですねぇ・・では早速使ってみましょうか!!
Dockerインストール方法
必要なもの
- Xcode
- Homebrew
- VirtualBox
環境
- Mac OS X 10.9以上
構成
これから作る構成は図のようになります:
簡単に構成を説明しますと:
VirtualBox(仮想化ソフトウェア)
で
Boot2docker(Dockerサーバーがプリインストールされた仮想マシン)
を実行します。
手元のマシンのDockerクライアントから仮想マシンのDockerサーバーを操作し、Dockerコンテナを実行する形となります。
手順
Homebrew・Xcodeをインストール
DockerをインストールするためにHomewbrewとXcodeをインストールします。
インストール方法については個人的にこのページがオススメです。
VirtualBoxをインストール
MacでVM(boot2docker)を動かす場合はこれが必要になります。
https://www.virtualbox.org/wiki/Downloads
ここからVirtualBoxダウンロードしてインストールしましょう。
Dockerをインストール
まずはターミナルでちょろちょろっと下のコマンドを入れます。
1 2 3 4 5 |
[sourcecode lang="bash"] $ brew update #パッケージのアップデート $ brew tap homebrew/binary $ brew install docker boot2docker #dockerコマンドと起動用のVMイメージを入れます [/sourcecode] |
次に以下のコマンドでdockerがインストールされたか確認してみましょう。
1 2 3 |
[sourcecode lang="bash"] $ docker -v [/sourcecode] |
こんな感じにバージョンが表示されたらオケーです!
1 2 3 |
[sourcecode lang="bash"] Docker version 1.5.0, build a8a31ef [/sourcecode] |
次はisoイメージをダウンロードします。
1 2 3 |
[sourcecode lang="bash"] $ boot2docker init [/sourcecode] |
ダウンロードが終わったらコンテナを起動させます
1 2 3 |
[sourcecode lang="bash"] $ boot2docker up [/sourcecode] |
すると・・・VirtualBoxでboot2dockerというVMが立ち上がりました。
docker upした後、dockerから以下のようにクライアントからの接続ができるための環境変数を設定するように促されます。なので出てきたコマンドをそのまま入力しちゃいましょう。
1 2 3 4 5 |
[sourcecode lang="bash"] $ export DOCKER_TLS_VERIFY=1 $ export DOCKER_HOST=tcp://192.168.59.xxx:2376 $ export DOCKER_CERT_PATH=/Users/vitor/.boot2docker/certs/boot2docker-vm [/sourcecode] |
dockerが使える準備が整いましたね!では試しにイメージをpullしてみましょう。
1 2 3 |
[sourcecode lang="bash"] $ docker pull centos:centos6 [/sourcecode] |
無事落とせたかどうかdocker imagesで確認してみましょう。
1 2 3 4 5 |
[sourcecode lang="bash"] $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos centos6 88f9454e60dd 3 weeks ago 210 MB [/sourcecode] |
イメージがつくられてますね。 次にコンテナを起動してみます。
1 2 3 4 |
[sourcecode lang="bash"] $ docker run -t -i -p 80:80 centos /bin/bash [root@08e12125c873 /]# [/sourcecode] |
動きましたーーー!!
今度はコンテナのイメージ内にwebサーバをインストールしてみましょか。
1 2 3 4 5 |
[sourcecode lang="bash"] [root@08e12125c873 /]# yum update [root@08e12125c873 /]# yum install httpd [root@08e12125c873 /]# service httpd start [/sourcecode] |
webサーバを立ち上げたのでboot2docker ipでVMのIPアドレスを確認してブラウザでアクセスしましょう。
1 2 3 4 |
[sourcecode lang="bash"] $ boot2docker ip 192.168.59.103 [/sourcecode] |
アクセスできました!
以上、dockerの使い方をざっくりと説明してみました。
Docker関連ツール
Kitematic
Docker試すのに色々コマンド打たなきゃ行けなくて面倒だなぁ・・・気軽に色んな開発環境を試したいなぁ・・・という人にはオススメのフロントエンドツールです。
Kitematicは自動的にVirtualboxとLinuxを手元のマシンにインストールし、GUIから使いたいコンテナのイメージを選んでアプリを起動します。現在はMac OSXのみ利用可能です。
GearD
http://openshift.github.io/geard/
Red Hat社が開発したDockerコンテナ管理に特化したCLIツールです。systemdとの連携や複数のコンテナの一括デプロイができます。
参考URL