Help us understand the problem. What is going on with this article?

Dockerのインストール手順

More than 3 years have passed since last update.

はじめに

株式会社サイシードのインターンシップにて、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"のように適宜変える。

Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"

 
 (2-2)ポートフォワードの設定  
  ポートフォワード(ホスト側のポートをVagrantのどのポートに対応させるか)
  するポートを指定する。

Vagrantfile
config.vm.network "forwarded_port",guest:vagrantのポート(上で指定したipアドレスまたはssh接続で使用するアドレスのポート), host:自分のPCのポート(localhostのポート)
Vagrantfile
 # 例:
 config.vm.network "forwarded_port", guest: 8080, host: 3000

  この設定だと、上で指定したipアドレスの8080番ポートにアクセスすると、
  Vagrant側の3000番ポートにアクセスできる。
 
 (2-3)共有フォルダの設定
  ホスト側とVagrant側で共有するフォルダを設定する。

Vagrantfile
 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 古いバージョンがある場合はアンインストール

Ubuntu
 $ sudo apt-get remove docker docker-engine

 

2.2 Trusty 14.04用の推奨されているパッケージを追加

 OSがUbuntuのTrusty 14.04である場合は、推奨されているパッケージを追加する。

Ubuntu
 $ 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を介してレポジトリを利用するためのパッケージをインストール

Ubuntu
  $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common

 
 (2)Dockerの公式GPGキーを登録

Ubuntu
  $ 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になっているか確認。

Ubuntu
  $ sudo apt-key fingerprint 0EBFCD88

 
 (4)安定版のレポジトリを設定する

Ubuntu
  $ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \ stable"

 

2.4 Dockerをインストール

 (1)aptパッケージ一覧をアップデート

Ubuntu
  $ sudo apt-get update

 
 (2)レポジトリを用いてDockerをインストール

Ubuntu
  $ sudo apt-get install docker-ce

 
  ※1:途中keyserverがタイムアウトする場合
   途中keyserverがタイムアウトする場合は以下のコマンドを実行

Ubuntu
   $ 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:インストールできるバージョンを確認

Ubuntu
  $ apt-cache madison docker-ce

   ※2-2:特定のバージョンをインストール

Ubuntu
   $ sudo apt-get install docker-ce=<VERSION>

   ※2-3:Dockerがインストールされたことを確認

Ubuntu
   $ 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

tera_shin
オリジナル音楽の投稿配信サービスhttps://www.micstack.com (現在休止中。リニューアルのための開発中です。) を運営しています。 コメントと音楽の要所要所の評価によってユーザー同士の共感を楽しめると共に、レビューによってより深く作品への愛を語ることが出来ます。 タグ検索やランキング、自分だけのマイランキング、レコメンドなどを通して音楽探しのサポートも行っています。
https://www.micstack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away