hirosanote’s blog

検証環境の構築手順やネットワーク機器のテスト結果、関連する事について記載します。このブログは個人で行っており、所属する会社とは関係ありません。

CentOS 7にDockerをインストールする手順

CentOS7にDockerをインストールする手順を記載します。以下のサイトを参考および翻訳しました。サイト管理者には、翻訳しブログに掲載することの許可は得ています。
www.itzgeek.com

Dockerは、近年広く普及しているコンテナ仮想化技術です。 アプリケーションをより効率的に展開する方法を提供します。 Dockerを使用すると、アプリケーションはLinuxオペレーティングシステム上のコンテナ内に常駐します。
Dockerは、cgroupsやnamespaceなどのカーネル機能を使用して、独立したコンテナを単一インスタンスで実行できるようにします。
この記事では、CentOS 7にDockerをインストールする方法を学びます。

注意 : Dockerは64bitオペレーティングシステムのみで動作します。

最初に、必要なパッケージをインストールします。

# yum -y install lvm2 device-mapper device-mapper-persistent-data device-mapper-event device-mapper-libs device-mapper-event-libs

Dockerのインストール
Dockerは現在2つのエディションで利用可能です。
- Community Edition (CE)
- Enterprise Edition (EE)

ここでは、Docker Comunity Edition (CE)をインストールします。

Dockerの古いバージョン(関連する依存関係"docker"または "docker-engine")をアンインストールします。

# yum  -y remove  docker-common docker container-selinux docker-selinux docker-engine

/var/lib/docker/の内容は心配しないでください。すべてが保存されます。

Docker Communityパッケージは現在、 "docker-ce"と呼ばれています。 ドッカーのインストール用にCEリポジトリを追加しましょう。

# yum -y install  wget
# wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

次のコマンドを使用してDocker CEの最新バージョンをインストールします。

# yum -y install docker-ce

Dockerの特定のバージョンをインストールしたい場合は、docker-ce- [version]のようにバージョンを追加してください。
例:yum install docker-ce-17.03.0.ce-1.el7.centos


Dockerサービスのコントロール

あなたのマシン上に、Dockerがインストールされました。インストール後に自動でスタートしていない事に備えて、Dockerサービスをスタートします。

# systemctl start docker
# systemctl enable docker

サービスが開始されたら、次のコマンドを実行してインストールを確認します。

# docker run -it centos echo Hello-World

"docker run"コマンドを実行するとどうなるかを見てみましょう。 最初にこのcentosコンテナを実行しているので、Dockerはcentosベースイメージを持つコンテナを開始します。出力は以下のようになります。

Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
7dc0dca2b151: Pull complete
Digest: sha256:b67d21dfe609ddacf404589e04631d90a342921e81c40aeaf3391f6717fa5322
Status: Downloaded newer image for centos:latest
Hello-World

Dockerはcentosイメージをローカルで検索し、見つからない場合、Dockerレジストリからcentosイメージのダウンロードを開始します。 イメージがダウンロードされると、コンテナが起動し、コンソールの "Hello-World"コマンドがエコーされ、出力の最後に表示されます。


Root以外のアクセスを許可

あなたが私のコマンドで見ることができるように、CentOSのために、私はDockerをrootユーザーとして実行しなければなりませんでした。 これを避けるには、root以外のユーザーがDockerコンテナを実行できるように、以下の手順に従います。
dockerというグループが存在しない場合は作成し、root特権で次のコマンドを実行します。

# groupadd docker
# useradd raj

ユーザーをDockerグループに追加します。

# usermod -aG docker raj

これで、root以外のユーザーでDockerを実行できます。


FirewallD

CentOS 7のFirewallDはDockerと競合する可能性があります。 サービスを無効にすることをお勧めします。

# systemctl stop firewalld
# systemctl disable firewalld

firewalldが起動または再起動されると、iptablesからDOCKERチェーンが削除され、Dockerが正常に動作しなくなります。
それでもsystemdを使いたい場合は、Dockerサービスの前にfirewalldを起動する必要があります。 Dockerの後にfirewalldを起動または再起動する場合は、Dockerデーモンを再起動する必要があります。