こんにちは私はグローバルグループの本と申します。日本語で長い文章を書いた経験があまり無いので、読みづらい部分があると思いますが、最後までお付き合いいただけると幸いです。私はグローバルグループ(GG)のメンバーでベトナムから参りました。

今回の投稿ですがDockerについてご紹介いたします。

Dockerとは開発環境を仮想化するためのオープンソースソフトウェアですね。DockerはLinuxコンテナを手軽に扱うためアプリケーションです。Linuxなら 問題ないですが Windowsを使っているとDockerを使えないです。しかし、Windows上でDockerを使う方法があります。基本的にHyper-Vはそれを解決できますが、Hyper-V は  Windows Homeでは利用できません。なので、今回、Hyper-Vを使わないDocker Machineの作り方を紹介します。

Dockerを使う背景

10人のメンバーのチームの中でプロジェクトを開発する時は統一の開発環境でアプリケーションをオペレーションさせるニーズがあるはずですね。そこで開発環境の初期設定は未経験者も経験がある方も困ると思います。開発環境は10人で同じことを設定しなければならないですが、PCにより違うオペレーションが発生するかもしれないですね。その時にはDockerを考えてください。

Boot2DockerというデフォルトのDocker Machineのような個人仮想マシンを作ります。そして仮想マシン管理ソフトウェア VirtualBox 上で Docker を動かすためのDocker Machineの作り方を説明しております。VirtualBox-Version 5.1.14 とCentos7を使っています。Hyper-Vが対応できるWindowsのバージョンはWindows用のDockerを参照してください。

Centos7をVirtualBoxにインストール

下のURLにアクセスして、VirtualBoxにCentos7をインストールしてください。

http://ftp.nara.wide.ad.jp/pub/Linux/centos/7/isos/x86_64/

ネットワークの設定

VirtualBoxにおけるDockerはNATネットワークを利用するので、NATの設定を追加する。VirtualBoxのFileメニューで「Preferences」を選択し=>NetworkでNatNetworkを追加する。Nat Networkタブ:デフォルトでそのままにする

Host -only Networkタブ:VirtualBoxでNICカードを追加するとともにデフォルトでIPアドレスも発生もらう。このIPは自分でも設定できるですね。今、ここはデフォルトでHostのIp4(192.168.56.1)とマスク(255.255.255.0)を設定する。

       
VirtualBoxでネットワークを設定したら、Centosを起動して、ログインする。

CentosのNICカードでIPを設定しましょう。

 lo:デフォルトのIP ->デフォルトの設定

 enp0s3:Nat カードー> デフォルトの設定

 enp0s8:Nat-Only Nat Networkカード、これを192.168.56.111で設定する


Adapter1を設定

次にCentosのネットワークを設定する時、Adapter1で「NAT」、Adapter2でHost-onlyAdapterを設定するのが正しいですけど、Adapter1におけ、「Nat-Network]を設定しないで「NAT]を選択してください。間違っていたら、動かないでしょう。これについては気を付けましょう。

          
Adapter2を設定
            
フォルダーを VirtualBoxで共有

VirtualBoxでのCentosの共有フォルダにおいて自分の開発Windowのフォルダーを選択する

        
 Centosでマウント

どのようにWindowsのフォルダをCentosにマウントするか?

仮想Centosでマウントできるためにvboxsをインストールしないといけないですね。

mount /dev/cdrom /media/cdromコマンドを実行して、それから/media/cdrom/VBoxLinuxAdditions.runを実行すると、Vboxsのインストールが終わりますが、その後、いろいろなエラーが出て、やり直しましたがエラーも変わりました。調べた結果で、仮想CentosがVboxsのドライバーを承認しないと、マウントできないわけです。

こちらのURLのページを参考にしました。

http://toolkt.com/site/virtualbox-shared-folders-with-centos-server-guest/

Centosでマウントする前に、VirtualBoxで「Insert Guest Additions..]を選択、isoイメージをCDROMにインサートする。

     
       
手動でマウントしましょう
#mkdir /media/cdrom
#mount /dev/cdrom /media/cdrom
#ll /media/cdrom

/media/cdromのフォルダにVBoxLinuxAdditions.runを確認

         

vboxsfドライバーをインストールする

# /media/cdrom/VBoxLinuxAdditions.run

-->このコマンドの結果は多分エラーが出るかもしれないので、

下のコマンドを実行して、修正できる。

yum install kernel-devel-2.6.32-279.el6.x86_64
yum groupinstall "Development Tools"

「FAILED]のメッセージが出た時、無視する。

#reboot

WindowsフォルダーをCentosのプロジェクトのフォルダーにマウントする

#mount -t vboxsf /C:/dockerworkspace/DEVWORKSPACE /media/sf_DEVWORKSPACE

ここまでWindowsのDEVWORKSPACEをCentosの/media/sf_DEVWORKSPACEにマウントできました。確認する

#cd sf_DEVWORKSPACE

#ls -sh

 

 

 

 

 

 

 dockerのインストール

マネージャのパッケージ情報を更新後、インストールします

# yum update 

Docker のパッケージ名は「docker」ではなく,「docker-io」です。yumからdocker-ioをインストールすればdockerがインストールされます。
# yum install docker-io 

docker が動作しているか確認してみます。
# service docker status

サービスをスタート
# service docker start

dockerバージョンを確認

#docker version 

イメージを確認する
#docker images 

実行中のコンテナを確認
#docker ps

すべてのコンテナを確認
#docker ps -a 

docker imageの取得

動作検証として、hello-worldイメージを実行してみた例です。

#docker run busybox echo Hello-World

nginxのイメージを実行して、確認する

[root@localhost ~]# docker run -d -p 8000:80 nginx ブラウザで確認する

 

 

まとめ

Dockerは簡単にインストールとコンテナを作成することができます。要するに、個人的なDockerマシンを設定できた上でイメージの作成、イメージ管理、DockerHubにイメージを立ち上がったり、Pushしたり、Cloneしたりすることは大きな問題ではないと思います。特にイメージを作成する際にはDockerfileの形を把握する必要がある。次回はDockerfileを説明したいと思います。

参考:

http://toolkt.com/site/virtualbox-shared-folders-with-centos-server-guest/

https://ja.wikipedia.org/wiki/Microsoft_Windows_10#.E3.82.A8.E3.83.87.E3.82.A3.E3.82.B7.E3.83.A7.E3.83.B3.E5.88.A5.E6.A9.9F.E8.83.BD.E6.AF.94.E8.BC.83.E8.A1.A8

http://qiita.com/zwirky/items/991f61a231f4e198a320

https://docs.docker.com/engine/getstarted/

http://qiita.com/tigberd/items/b94ae2bf7d78685cd6f5