OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

Docker 1.8.2をRHEL 7.1へインストール

カテゴリ:OSSセットアップ | ソフトウェア:Docker | タグ:
最終更新日:2020/11/01 | 公開日:2015/11/08

目次

概要

 Docker 1.8.2をRed Hat Enterprise Linux 7.1(x86_64)へインストールします。 RHEL 7からコンテナ管理フレームワークとしてDockerが採用されましたが、 RHEL 7.1のインストールメディアにはDockerのパッケージは同梱されていません。 DockerはExtrasチャネルで提供されているため、以下のいずれかの方法で入手できます。

  1. yumでRHEL 7のExtrasチャネルを有効化し、インストールする
  2. Red Hat社のカスタマーポータルサイトからrpmファイルをダウンロードし、rpmコマンドでインストールする

 今回はサーバがインターネットにつながっていないことを前提とし、 上記2.のrpmファイルをダウンロードする方法でインストールします。

構成

サーバ構成

OSバージョン

Red Hat Enterprise Linux 7.1 x86_64

ソフトウェア・パッケージ一覧

 Dockerのrpmパッケージを下記Red Hat社のカスタマーポータルサイトからダウンロードします。 ダウンロードするためにはカスタマーポータルにログインする必要がありますので、 有効なサブスクリプションを保有しており、Red Hatアカウントを作成済みである必要があります。

■ダウンロード元
https://access.redhat.com/

 RHEL 7.1のベース環境を「インフラストラクチャサーバー」でインストールした場合、 Dockerをインストールするために必要なパッケージ(依存パッケージ含む)は以下の9パッケージでした。

  • docker-1.8.2-7.el7.x86_64.rpm
  • audit-libs-python-2.4.1-5.el7.x86_64.rpm
  • checkpolicy-2.1.12-6.el7.x86_64.rpm
  • docker-selinux-1.8.2-7.el7.x86_64.rpm
  • libcgroup-0.41-8.el7.x86_64.rpm
  • libsemanage-python-2.1.10-16.el7.x86_64.rpm
  • policycoreutils-python-2.2.5-15.el7.x86_64.rpm
  • python-IPy-0.75-6.el7.noarch.rpm
  • setools-libs-3.3.7-46.el7.x86_64.rpm

環境構築

インストール

 事前にダウンロードしたDocker 1.8.2とその依存パッケージを /media/rpm/docker/ ディレクトリ配下に配置した前提でインストールを進めます。

# cd /media/rpm/docker/
# ls -l
合計 10388
-rw-r--r-- 1 root root   70544 11月  8 03:36 audit-libs-python-2.4.1-5.el7.x86_64.rpm
-rw-r--r-- 1 root root  253244 11月  8 03:36 checkpolicy-2.1.12-6.el7.x86_64.rpm
-rw-r--r-- 1 root root 9090812 11月  8 03:25 docker-1.8.2-7.el7.x86_64.rpm
-rw-r--r-- 1 root root   62416 11月  8 03:28 docker-selinux-1.8.2-7.el7.x86_64.rpm
-rw-r--r-- 1 root root   65752 11月  8 03:34 libcgroup-0.41-8.el7.x86_64.rpm
-rw-r--r-- 1 root root   96388 11月  8 03:34 libsemanage-python-2.1.10-16.el7.x86_64.rpm
-rw-r--r-- 1 root root  444848 11月  8 03:30 policycoreutils-python-2.2.5-15.el7.x86_64.rpm
-rw-r--r-- 1 root root   32828 11月  8 03:35 python-IPy-0.75-6.el7.noarch.rpm
-rw-r--r-- 1 root root  496484 11月  8 03:41 setools-libs-3.3.7-46.el7.x86_64.rpm
# rpm -ihv *.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:setools-libs-3.3.7-46.el7        ################################# [ 11%]
   2:python-IPy-0.75-6.el7            ################################# [ 22%]
   3:libsemanage-python-2.1.10-16.el7 ################################# [ 33%]
   4:libcgroup-0.41-8.el7             ################################# [ 44%]
   5:checkpolicy-2.1.12-6.el7         ################################# [ 56%]
   6:audit-libs-python-2.4.1-5.el7    ################################# [ 67%]
   7:policycoreutils-python-2.2.5-15.e################################# [ 78%]
   8:docker-selinux-1.8.2-7.el7       ################################# [ 89%]
   9:docker-1.8.2-7.el7               ################################# [100%]

設定

Dockerの起動

 インストール直後はDockerが停止しているので起動します。

# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled) ←自動起動無効
   Active: inactive (dead) ←停止
     Docs: http://docs.docker.com

# systemctl start docker
# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled) ←自動起動無効
   Active: active (running) since 日 2015-11-08 12:40:17 JST; 8s ago ←起動
     Docs: http://docs.docker.com
 Main PID: 443 (docker)
   CGroup: /system.slice/docker.service
           mq443 /usr/bin/docker daemon --selinux-enabled --storage-driver devicemapper --storage...

11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.276964861+09:00" level=warn...em"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.281255906+09:00" level=info...ge"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.281316566+09:00" level=info...ge"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.294310212+09:00" level=warning...
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.298474680+09:00" level=info...se"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465178996+09:00" level=info...t."
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465623754+09:00" level=info...e."
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465678144+09:00" level=info...on"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465725394+09:00" level=info...8.2
11月 08 12:40:17 rhel71 systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

Dockerの自動起動設定

 Dockerのインストール後は自動起動が無効になっているので、 Linux起動時に自動で起動する設定に変更します。

# systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'
# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled) ←自動起動有効
   Active: active (running) since 日 2015-11-08 12:40:17 JST; 40s ago ←起動
     Docs: http://docs.docker.com
 Main PID: 443 (docker)
   CGroup: /system.slice/docker.service
           mq443 /usr/bin/docker daemon --selinux-enabled --storage-driver devicemapper --storage...

11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.276964861+09:00" level=warn...em"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.281255906+09:00" level=info...ge"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.281316566+09:00" level=info...ge"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.294310212+09:00" level=warning...
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.298474680+09:00" level=info...se"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465178996+09:00" level=info...t."
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465623754+09:00" level=info...e."
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465678144+09:00" level=info...on"
11月 08 12:40:17 rhel71 docker[443]: time="2015-11-08T12:40:17.465725394+09:00" level=info...8.2
11月 08 12:40:17 rhel71 systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

動作テスト

Dockerのバージョン確認

 インストールしたDockerのバージョンを確認します。

# docker -v
Docker version 1.8.2, build bb472f0/1.8.2

Dockerの構成と各種モジュールのバージョン確認

 Dockerのクライアント、サーバの各種モジュール構成とそのバージョンを確認します。

# docker version
Client:
 Version:      1.8.2
 API version:  1.20
 Package Version: docker-1.8.2-7.el7.x86_64
 Go version:   go1.4.2
 Git commit:   bb472f0/1.8.2
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Package Version:
 Go version:   go1.4.2
 Git commit:   bb472f0/1.8.2
 Built:
 OS/Arch:      linux/amd64

Dockerの管理情報確認

 Dockerの管理情報を確認します。 インストールした直後なので、コンテナやイメージは存在しません(0件)。

# docker info
Containers: 0
Images: 0
Storage Driver: devicemapper
 Pool Name: VolGroup00-docker--pool
 Pool Blocksize: 524.3 kB
 Backing Filesystem: xfs
 Data file:
 Metadata file:
 Data Space Used: 62.39 MB
 Data Space Total: 38.3 GB
 Data Space Available: 38.24 GB
 Metadata Space Used: 61.44 kB
 Metadata Space Total: 121.6 MB
 Metadata Space Available: 121.6 MB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Library Version: 1.02.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.1 (Maipo)
CPUs: 2
Total Memory: 3.58 GiB
Name: rhel71
ID: ANCU:VNBG:UCRQ:CWRF:IB3Q:HZXB:PQDZ:GM76:SMQC:VRMC:NZAJ:J3MK
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled