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

 

2019年08月28日 Docker
Docker を CentOS7 にインストールする

 

 

CentOS7に仮想環境を提供するソフト「Docker」をインストールする手順について説明します。

 

目次

  1. 動作確認環境
  2. Dockerとは?
  3. Dockerをインストールする
  4. Dockerを起動する
  5. Dockerを自動起動設定する
  6. 参考URL

動作確認環境

本ページの内容は、以下の環境で動作確認をしています。

  • CentOS Linux release 7.6.1810 (Core)

 

 

Dockerとは?

Enterprise Container Platform | Docker
Enterprise Container Platform | Docker
  • Dockerは、コンテナと呼ばれるOSの仮想化環境を提供するソフトウェアです。
  • Dockerは、VMware製品などの完全仮想化を行うソフトと比べて、ディスク使用量は少ない、仮想環境の作成・起動が速い、性能劣化がほとんどない、といった利点を持ちます。

 

Dockerをインストールする

古いバージョンをアンインストールする

  1. Dockerをインストールする前に、まずは古いバージョンをアンインストールします。
古いバージョンをアンインストールする
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
実行結果(アンインストール対象がない場合)
Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal
  1. もし古いバージョンがインストールされていなければ、上記のような出力結果になるでしょう。

 

 

Docker用のリポジトリ追加する

  1. yumがデフォルトで管理するリポジトリの中にはDockerは含まれていません。
  2. そこでまずはDocker用のリポジトリを追加する必要があります。
  3. 以下のコマンドで、リポジトリの設定に必要なツールをインストールします。
リポジトリ設定に必要なツールをインストール
sudo yum install -y yum-utils evice-mapper-persistent-data lvm2
実行結果(抜粋)
Installed:
  lvm2.x86_64 7:2.02.180-10.el7_6.8

Dependency Installed:
  device-mapper-event.x86_64 7:1.02.149-10.el7_6.8
  device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.8
  device-mapper-persistent-data.x86_64 0:0.7.3-3.el7
  libaio.x86_64 0:0.3.109-13.el7
  lvm2-libs.x86_64 7:2.02.180-10.el7_6.8

  Complete!
すでにインストールされているパッケージ内容によっては、出力結果が異なる可能性があります。
  1. 出力結果の最後に「Complete!」と表示されたらインストール完了です。

 

  1. 続いてDocker用のリポジトリを追加します。
Docker用のリポジトリを追加する
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
実行結果
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

 

  1. リポジトリを追加したらyumパッケージのインデックスを更新しておきます。
yumパッケージインデックスを更新
sudo yum makecache fast
実行結果
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
  * base: ty1.mirror.newmediaexpress.com   
  * extras: ty1.mirror.newmediaexpress.com 
  * updates: ty1.mirror.newmediaexpress.com
base                                                                                      | 3.6 kB  00:00:00     
docker-ce-stable                                                                          | 3.5 kB  00:00:00     
extras                                                                                    | 3.4 kB  00:00:00     
updates                                                                                   | 3.4 kB  00:00:00     
(1/2): docker-ce-stable/x86_64/updateinfo                                                 |   55 B  00:00:00     
(2/2): docker-ce-stable/x86_64/primary_db                                                 |  32 kB  00:00:00     
Metadata Cache Created

 

 

Dockerをインストールする

  1. Dockerのリポジトリの追加が完了したら、Dockerをインストールします。
  2. インストールには、以下のコマンドを実行します。
Dockerインストール
sudo yum install -y docker-ce
実行結果(抜粋)
Installed:
  docker-ce.x86_64 3:19.03.1-3.el7

Dependency Installed:
  audit-libs-python.x86_64 0:2.8.4-4.el7               checkpolicy.x86_64 0:2.5-8.el7
  container-selinux.noarch 2:2.107-1.el7_6             containerd.io.x86_64 0:1.2.6-3.3.el7
  docker-ce-cli.x86_64 1:19.03.1-3.el7                 libcgroup.x86_64 0:0.41-20.el7
  libsemanage-python.x86_64 0:2.5-14.el7               policycoreutils-python.x86_64 0:2.5-29.el7_6.1
  python-IPy.noarch 0:0.75-6.el7                       setools-libs.x86_64 0:3.3.8-4.el7

Complete!
すでにインストールされているパッケージ内容によっては、出力結果が異なる可能性があります。
  1. 出力結果の最後に「Complete!」と表示されたらインストール完了です。

 

 

Dockerを起動する

  1. Dockerをインストールが完了したら、Dockerを起動します。
  2. Dockerを起動するためには、以下のコマンドを実行します。
Docker起動
sudo systemctl start docker
実行結果
なし

 

 

Dockerの起動を確認する

  1. Dockerが正常に起動しているかは、以下のコマンドで確認をします。
    • hello-world」という名前のイメージからコンテナを起動しています。
Docker動作確認
sudo docker container run hello-world
実行結果
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:451ce787d12369c5df2a32c85e5a03d52cbcef6eb3586dd03075f3034f10adcd
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
  1. 出力結果の中に「Hello from Docker!」と表示されていればDokcerが正常に起動しています。

 

 

sudoなしで実行するためには

  1. Dockerを操作する場合、デフォルトでスーパーユーザー(root)権限レベルが求められます。
  2. その原因は、現在の実行ユーザが「docker」という名前のグループに所属していないことが原因になります。
  3. そのままでも問題はありませんが、ここでは現在の実行ユーザをdockerグループに所属させる手順について説明します。
  4. まずは以下のコマンドで現行グループ一覧の中にdockerというグループがあるかを確認します。
グループ一覧を確認
cat /etc/group | grep docker
実行結果例(すでに含まれている場合)
docker:x:992:

 

  1. すでにあれば問題ありませんが、ない場合は以下のコマンドでdockerグループを作成します。
dockerグループを作成
sudo groupadd docker

 

  1. 続いて、現行ログインしているユーザをdockerグループに所属させます。
現行ユーザをdockerグループに所属させる
sudo gpasswd -a [ユーザ名] docker
実行結果
Adding user [ユーザ名] to group docker

 

  1. Dockerを再起動します。
dockerを再起動する
sudo systemctl restart docker
実行結果
なし

 

  1. システムからログアウト→再ログインすると変更が反映されます。
ログアウト(再ログインすると反映される)
exit

 

  1. 再ログイン後、正しく追加されたかを確認します。
現行ユーザのグループを確認
groups
実行結果(抜粋)
docker
  1. 実行結果に「docker」が含まれていれば問題ありません。

 

 

Dockerを自動起動設定する

  1. システムを再起動するたびにDockerを起動するのは手間です。
  2. ここではDockerがシステム起動と同時に自動起動する設定をします。
  3. 自動起動設定には以下のコマンドを実行します。
Docker自動起動設定
sudo systemctl enable docker
実行結果
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

 

 

Dockerの自動起動設定を確認する

  1. Dockerの自動起動設定が正常に設定できているかは、以下のコマンドで確認をします。
Docker自動起動設定確認
sudo systemctl is-enabled docker
実行結果
enabled
  1. 出力結果が「enabled」であれば正常に自動起動設定ができています。

 

 

参考URL

 

 

 

 

Programming Style