IThaiのブログ

IT関連の話題やタイに関する様々なことを書いていきます。

CentOS7にDockerをインストールする

DockerをcentOS7で使用できるまでのTipsです。途中、色々躓いたところがあったので、メモしておきます。

Host環境
Mac OS X Yosemite v10.10.2

vagrantでcentos7のboxを追加し、vagrant init、vagrant upします。

    default: /vagrant => /Users/hogehoge
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device


共有フォルダのマウント処理で失敗しているようなので、以下を参考に修正しました。 http://qiita.com/osamu1203/items/10e19c74c912d303ca0b

$ sudo /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module                   [  OK  ]
Building the shared folder support module                  [  OK  ]
Building the OpenGL support module                         [  OK  ]
Doing non-kernel setup of the Guest Additions              [  OK  ]
Starting the VirtualBox Guest Additions                    [  OK  ]

もう一度vagrant upして成功しました。

それでは、centos7にDockerをインストールします。

# yum install docker-io
# docker --version
Docker version 1.5.0-dev, build fc0329b/1.5.0

dockerサービスを登録し、スタートさせます。

# systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

# systemctl start docker
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

サービスのスタートに失敗しました。

# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
   Active: failed (Result: exit-code) since 日 2015-04-26 05:00:06 EDT; 13s ago
     Docs: http://docs.docker.com
  Process: 2931 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=127)
 Main PID: 2931 (code=exited, status=127)


以下を参考にdevice-mapper-event-libsをインストールします。
Can't install Docker on CentOS 7 running on Vagrant - Stack Overflow

# yum install device-mapper-event-libs

もう一度スタートさせます。

# systemctl start docker
# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
   Active: active (running) since 日 2015-04-26 05:04:51 EDT; 52s ago
     Docs: http://docs.docker.com
 Main PID: 2994 (docker)
   CGroup: /system.slice/docker.service
           └─2994 /usr/bin/docker -d --selinux-enabled

無事、スタートできました。

dockerの使い方については、以下でチュートリアルができるみたいなので、参照してください。
Online Tutorial - Try It! | Docker

Linuxコンテナー最新ツール Dockerを支える技術(日経BP Next ICT選書) 日経Linux技術解説書

Linuxコンテナー最新ツール Dockerを支える技術(日経BP Next ICT選書) 日経Linux技術解説書