こんにちは私はグローバルグループの本と申します。日本語で長い文章を書いた経験があまり無いので、読みづらい部分があると思いますが、最後までお付き合いいただけると幸いです。私はグローバルグループ(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)を設定する。
CentosのNICカードでIPを設定しましょう。
lo:デフォルトのIP ->デフォルトの設定
enp0s3:Nat カードー> デフォルトの設定
enp0s8:Nat-Only Nat Networkカード、これを192.168.56.111で設定する
次にCentosのネットワークを設定する時、Adapter1で「NAT」、Adapter2でHost-onlyAdapterを設定するのが正しいですけど、Adapter1におけ、「Nat-Network]を設定しないで「NAT]を選択してください。間違っていたら、動かないでしょう。これについては気を付けましょう。
VirtualBoxでのCentosの共有フォルダにおいて自分の開発Windowのフォルダーを選択する
どのようにWindowsのフォルダをCentosにマウントするか?
仮想Centosでマウントできるためにvboxsをインストールしないといけないですね。
mount /dev/cdrom /media/cdromコマンドを実行して、それから/media/cdrom/VBoxLinuxAdditions.runを実行すると、Vboxsのインストールが終わりますが、その後、いろいろなエラーが出て、やり直しましたがエラーも変わりました。調べた結果で、仮想CentosがVboxsのドライバーを承認しないと、マウントできないわけです。
こちらのURLのページを参考にしました。
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/
http://qiita.com/zwirky/items/991f61a231f4e198a320
https://docs.docker.com/engine/getstarted/
http://qiita.com/tigberd/items/b94ae2bf7d78685cd6f5