はじめに
株式会社サイシードのインターンシップにて、Dockerを導入しました。
本稿が少しでもみなさまの参考になれば幸いです。
導入環境
・windows7
・vagrant
備考
Docker for WindowsやDocker for Macは比較的簡単にDocker環境を構築することができますが、
・動作が遅い(参考:http://cluex-developers.hateblo.jp/entry/2016/11/02/122633)
・古いOSだと導入できないことがある
・以前からVagrantを用いている場合は、使い慣れた環境を利用できる
といったこともあるので、
たとえDocker for WindowsやDocker for Macなどを動作させられる環境であったとしても、Vagrantを利用する方が良い場合もあるかと思います。
ただし、動作が遅い問題については、参考のリンク先にもあるように
docker-syncというものを使うと改善されるようです。
私の環境では、検証することはできませんでしたが、VMをかませなくても良くなるので、
一度試してみても良いかと思います。
Dockerインストール手順
1.Vagrantをインストール
1.1 vagrantのインストーラーをダウンロード
https://www.vagrantup.com/downloads.html
にアクセスしてそれぞれの環境に合わせたインストーラーをダウンロード。
インストーラーを実行して、手順に沿ってインストールする。
インストールされたかをコマンドプロンプトで確認。
> vagrant -v
1.2 vagrantにubuntuのboxを追加
http://www.vagrantbox.es/にアクセスして、
ubuntuのtrusty64bit版(例:Official Ubuntu 14.04 daily Cloud Image amd64
)のurlをコピーする。
コマンドプロンプトで以下のコマンドを実行して、vagrantにboxを追加。
> vagrant box add [ボックス名(任意)(例: Ubuntu14.04)] 先ほどコピーしたURL
1.3 Vagrantプラグインのインストール
(1)vbguestをインストール
Vagrant が VirtualBox の共有フォルダをマウントする時に、起き得るエラーの1つを解決してくれる。
> vagrant plugin install vagrant-vbguest
(2)hostsupdaterをインストール
Vagrant を起動するときに、ホストの /etc/hosts
を Vagrantfile に記述したものに設定してくれる。
そのため、仮想マシンを作成するたびに、/etc/hosts
を開いて、ドメインや ip アドレスを
設定しなくてもよくなる。
> vagrant plugin install vagrant-hostsupdater
※インストールしたプラグインの確認方法
> vagrant plugin list
1.4 Vagrantの設定
開発環境用のフォルダ(例:C:\Users\tera_shin\Ubuntu\Docker
)を作成する。
作成したフォルダの中にVagrantfileを作成する。
(1)Vagrantfileを作成
> vagrant init 先ほど追加したボックス名(例: Ubuntu14.04)
# box名は以下のコマンドで確認することも出来る。
> vagrant box list
(2)vagrant initで作成されたVagrantfileを編集する。
> vi Vagrantfile
(2-1)ipアドレスの設定
config.vm.network "private_network"
のコメントアウトをはずす。
他とかぶっている場合は、ipをip: "192.168.55.44"
のように適宜変える。
config.vm.network "private_network", ip: "192.168.33.10"
(2-2)ポートフォワードの設定
ポートフォワード(ホスト側のポートをVagrantのどのポートに対応させるか)
するポートを指定する。
config.vm.network "forwarded_port",guest:vagrantのポート(上で指定したipアドレスまたはssh接続で使用するアドレスのポート), host:自分のPCのポート(localhostのポート)
# 例:
config.vm.network "forwarded_port", guest: 8080, host: 3000
この設定だと、上で指定したipアドレスの8080番ポートにアクセスすると、
Vagrant側の3000番ポートにアクセスできる。
(2-3)共有フォルダの設定
ホスト側とVagrant側で共有するフォルダを設定する。
config.vm.synced_folder "ホスト側のフォルダパス", "Vagrant側のフォルダパス"
備考
この方法で設定すると、共有フォルダの変更がホスト側とVagrant側の双方向で行われる。
そのため、
・共有フォルダ上のプログラムの実行速度が遅くなる。
・共有フォルダ上でVagrant側からファイルを作成したり、
アップロードしたりする場合、エラーが出る。
といったことが起きることがある。
その場合は、rsyncによる共有方法を利用してみると良い。
rsyncはホスト側からVagrant側への一方向の共有方法なので、上記の問題が
ある程度解消される。
1.5 Vagrantの立ち上げ
Vagrantfileのあるディレクトリで、以下のコマンドを実行すると、
Vagrantを立ち上げることが出来る。
> vagrant up
1.6 Vagrantで立ち上げた仮想OSにアクセスする
vagrantにSSH接続する。
> vagrant ssh
または、
puttyなどのSSHクライアントソフトを用いて、
vagrantの上で指定したipアドレスまたはssh接続用のアドレスを指定することで接続する。
vagrantのssh接続用のアドレスは、以下のコマンドで確認できる。
> vagrant ssh-config
2.Dockerをインストール
公式インストールガイド:
https://docs.docker.com/engine/installation/linux/ubuntu/#recommended-extra-packages-for-trusty-1404
以下のコマンドは特に記載がない限り、Vagrantの仮想OS(Ubuntu)上で行う。
2.1 古いバージョンがある場合はアンインストール
$ sudo apt-get remove docker docker-engine
2.2 Trusty 14.04用の推奨されているパッケージを追加
OSがUbuntuのTrusty 14.04である場合は、推奨されているパッケージを追加する。
$ sudo apt-get update
$ sudo apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
2.3 Dockerレポジトリを登録
特に理由がなければ、Docker CE(個人使用用)のレポジトリを利用する。
(1)aptがHTTPSを介してレポジトリを利用するためのパッケージをインストール
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
(2)Dockerの公式GPGキーを登録
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
(3)GPGキーの確認
fingerprintが9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
になっているか確認。
$ sudo apt-key fingerprint 0EBFCD88
(4)安定版のレポジトリを設定する
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \ stable"
2.4 Dockerをインストール
(1)aptパッケージ一覧をアップデート
$ sudo apt-get update
(2)レポジトリを用いてDockerをインストール
$ sudo apt-get install docker-ce
※1:途中keyserverがタイムアウトする場合
途中keyserverがタイムアウトする場合は以下のコマンドを実行
$ curl https://apt.dockerproject.org/gpg > docker.gpg.key && echo "c836dc13577c6f7c133ad1db1a2ee5f41ad742d11e4ac860d8e658b2b39e6ac1 docker.gpg.key" | sha256sum -c && apt-key add docker.gpg.key && rm docker.gpg.key
※2:特定のバージョンをインストールする場合
※2-1:インストールできるバージョンを確認
$ apt-cache madison docker-ce
※2-2:特定のバージョンをインストール
$ sudo apt-get install docker-ce=<VERSION>
※2-3:Dockerがインストールされたことを確認
$ sudo docker run hello-world
参考
http://dotinstall.com/lessons/basic_docker
https://docs.docker.com/engine/installation/linux/ubuntu/#install-from-a-package
http://cluex-developers.hateblo.jp/entry/2016/11/02/122633
http://qiita.com/togana/items/cf3bf9bb7cf28923b221