CentOS7へのDockerのインストール

Docker
Docker公式ロゴ2a
©2020 Docker Inc. All rights reserved

 本記事はひと世代前のDockerのインストール手順です。最新のDocker(Docker CE)のインストール手順は別記事「CentOS7へのDockerのインストール(Docker CE版)」をご覧ください。

以下の記事は旧バージョンのDockerインストール手順として掲載いたします。


 今回はDockerのインストールについてです。

 Dockerは現状(2016年8月)では以下のOS上にインストールが可能となってます。

OSバージョン備考
Linuxkernel 3.10以上 
Windows7以上Hyper-V必須
Docker本体はHyper-V上の仮想Linux内に存在する
Mac OS X10.8以上Docker本体はVirtualBox上の仮想Linux内に存在する
VirtualBoxはDockerインストーラに同梱

Dockerのインストール

Dockerのインストール作業項目

インストールは以下の流れで行います。

  1. Dockerホストマシンの動作条件の確認
  2. Dockerホストマシンのセットアップ
  3. Dockerインストール
  4. Dockerの起動/停止/再起動
  5. Dockerの自動起動
  6. 動作確認
  7. Docker管理ユーザのセットアップ

Dockerのインストール作業内容

1.Dockerホストマシンの動作条件の確認

 今回は、CentOSを使用します。

 Docker本家サイトによりますと、CentOSのDockerの稼働要件は以下の通りでした。

名称条件
カーネルバージョン3.10以上
CentOS64bit版
OSバージョンCentOS 7以上

 ここでは、CentOS 7.2 (kernel 3.10.0)を使用してインストールを進めることにします。

2.Dockerホストマシンのセットアップ

 私が行った、DockerをインストールするホストOSのインストール時の主な設定内容は以下の通りです。

名称内容説明
OSCentOS 7.2.1511Kerner 3.10.0
パーティション/boot→500MB
/(ルート)→2GB以上
swap→物理メモリに応じて
/var/lib/docker→残り全部
/var/lib/dockerには、Dockerの
リソース(イメージファイル、仮
想Diskファイル、など)が全て置
かれるため、パーティションを分
けたほうが運用的に良いと思い
ます
ソフトウエア最小限のインストール 
追加パッケージperl
ftp
bridge-utils
net-tools
 

3.Dockerインストール

 インストールはDocker公式サイトに従い、以下のコマンドにて行います。

※root権限にて行う必要があります。(rootにスイッチする、または sudoコマンドにて以下を実行する)

# curl -sSL https://get.docker.com/ | sh

もしくは

# wget -qO- https://get.docker.com/ | sh

 上記コマンドでは、Docker本家サイトから、Dockerのインストーラを実行するためのシェルスクリプトがダウンロードされ、それを実行する、ということが行われます。

 yumなどのパッケージ管理ツールでもインストールは可能なのですが、上記の方法ですと、例えばインストール内容が変更になった場合でも、たぶんスクリプト内部で吸収するようにすると思いますので、上記の方法をお勧めしておきます。

※curlやwgetコマンドがインストールされていない場合は、「yum install」コマンドなどでインストールしてください。

4.Dockerの起動/停止/再起動

※root権限にて行う必要があります。(rootにスイッチする、または sudoコマンドにて以下を実行する)

 インストールが完了しましたら、以下のコマンドにてDockerを起動します。

# systemctl start docker

 起動後に、以下のコマンドにて正常に起動されているか確認します。

# systemctl status docker

 正常に起動された場合は以下のように出力されます。

● docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Drop-In: /etc/systemd/system/docker.service.d
      ┗ docker.conf
 Active: active (running) since 火 2016-07-12 11:29:27 JST; 3 days ago
   <<以下略>>

「active (running)」の部分を確認してください。

 activeになっていない場合は、その原因が表示されていると思いますので、対応が必要になります。これに関しましては、別途まとめたいと思います。

 Dockerを停止する場合は以下のコマンドを実行します。

# systemctl stop docker

 Dockerを再起動する場合は以下のコマンドを実行します。

# systemctl restart docker

 Docker本体の設定を変更した場合は、Dockerの再起動が必要になる場合がありますので、Dockerの再起動でも、Dockerの停止/起動でも、お好みで行ってください。

5.Dockerの自動起動

 Dockerの初期設定では、OS起動時にDockerは自動起動されません。
 よって、自動起動させたい場合は、以下のコマンドで自動起動をするように設定してください。

# systemctl enable docker

 念のため、以下のコマンドで自動起動する設定になっているか確認しましょう。

# systemctl status docker

 自動起動するように設定された場合は以下のように出力されます。
 2行目の「/usr/lib/systemd/system/docker.service」の次が「enabled;」になっていれば大丈夫です。

● docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
 Drop-In: /etc/systemd/system/docker.service.d
      ┗ docker.conf
   <<以下略>>

 ちなみに、自動起動をやめる場合には、以下のコマンドを実行してください。

# systemctl disable docker

6.動作確認

 Dockerを起動させた状態で、以下のコマンドを実行してください。

# docker images

 これは、Dockerホストのローカルに格納されている利用可能なDockerイメージの一覧を表示するコマンドです。
 Dockerをインストールした直後の状態ですと、ヘッダーのみでなにも表示されません。

 動作確認のためにDockerHubからCentOSのDockerイメージを入手してみましょう。
 以下のコマンドを実行してください。

# docker pull centos

 以下のような内容が出力されたと思います。

 これは、最新版のCentOSのイメージのダウンロードが正常終了したことを示してます。

Using default tag: latest
latest: Pulling from library/centos
0653bff3c5cf: Pull complete
Digest: sha256:81e4f2f663eaa1bf46ff9be348396dd7053734b257ef4147d7133d6f25bbf7cf
Status: Downloaded newer image for centos:latest

再度「docker images」コマンドを実行します。

# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 05188b417f30 2 weeks ago 196.8 MB

 今度は、なにか1つ表示されたと思います。これが、公式のCentOSのDockerイメージになります。SIZEのところに「196.8 MB」と表示されています。OSのイメージにしては小さいですね。

 ここまでできれば、とりあえずDockerのインストールは正常に終わったと考えてよいと思います。

7.Docker管理ユーザのセットアップ

 Dockerの起動/停止などを行うコマンドの「systemctl」はOSのコマンドですので、root権限が必須です。

 Dockerが起動した後のDockerコマンド(「docker images」など)も、デフォルトではroot権限が必要です。
 しかし、Dockerコマンドは、許可した一般ユーザに実行権限を付与することが可能です。

 以下のコマンドで、OSのグループ一覧を出力してください。

# /etc/group

 その中に「docker」グループがあると思います。

 この「docker」グループに所属するユーザは、Dockerの管理ユーザとして、「docker」コマンドを使うことが可能となります。

 例えば、「admin」というユーザがあったとします。

 そのユーザでログインし、「docker images」コマンドを実行しても、以下のような内容が出力され、Dockerデーモンとのやりとりが出来ません。

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

 そこで、以下のコマンドを実行し、「admin」ユーザを「docker」グループに所属させます。

# gpasswd -a admin docker

 以下のコマンドで、dockerグループに所属しているか確認します。

# id admin

 所属していることが確認できましたら、adminユーザでログインし、「docker images」コマンドを実行してください。

 今度はイメージのリストが表示されたと思います。

 もし、表示されない場合は、一旦ターミナルを終了させて、再度ログオンした後、試してください。

さいごに

 次回は、WEBサービスとDBサービスのDockerコンテナを作成し、連携させる環境を作成して、その環境を使ってDockerの構造を詳しく見ていきたいと思います。

 お読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました