のぴぴのメモ

自分用のLinuxとかの技術メモ

RHEL7 on EC2にdockerをセットアップする手順

はじめに

RHEL7 on EC2(License Included)でのdockerセットアップ手順を記載します。
Amazon Linux2へのdockerセットアップ手順(下記)との違いは、RHUI*1のEPELレポジトリを有効化してそこからdockerをインストールするところです。
nopipi.hatenablog.com

手順

RHEL7 on EC2へのdockerインストール

基本的には、ECS agentガイドにある手順を参考にRHEL用に一部カスタマイズして進めます。

EPELレポジトリの登録

awsが提供するライセンス込みのRHELインスタンスにdockerをインストールする場合は、RHUI(Red Hat Update Infrastructure)*2のEPEL(Extra Packages for Enterprise Linux)から、dockerをダウンロードします。
EPELはデフォルトでは登録がないので、まずEPELの登録をします。(2020/11/10 RHUIの仕様が変わったようで、リポジトリ名が変わっていたのでそれに合わせてコマンドを変更しました)

sudo yum install yum-utils
sudo yum-config-manager --enable rhel-7-server-rhui-extras-rpms
Dockertインストール

RHEL全体のパッケージアップデートとdockerのインストールを行います。

sudo yum -y update
sudo yum -y install docker 

dockerの起動とOS起動ときの自動起動設定

sudo systemctl start docker
sudo systemctl enable docker

dockerコマンドをec2-userで実行するための設定

ec2-userのセカンダリグループに、dockerrootグループを追加します。dockerのグループが、dockerではなくdockerrootなので注意してください。
あとdockerdのsocketファイルの所有者が"root:root"なので、dockerrootグループがwriteできるよう所有者を"root:dockerroot"に変更します。(もっとスマートな方法があればいいのですが、ちょっと見つからなかったので)

sudo usermod -a -G dockerroot ec2-user
sudo chown root:dockerroot /var/run/docker.sock 

確認

dockerコマンドを実行して確認する。実行して、ClientとServerの両方の情報が表示されればOKです。

$ docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.6
 Git commit:   3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
 Built:        Fri Jun 15 23:15:12 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.6
  Git commit:   7390fc6/18.03.1-ce
  Built:        Fri Jun 15 23:17:24 2018
  OS/Arch:      linux/amd64
  Experimental: false

*1:Red Hat Update Infrastructure 2.0

*2:クラウドで提供されているRHEL(License IncludedなRHELのAMIを利用した場合が該当)ようにクラウド上で提供されている、RHELパッケージのレポジトリサービス。詳細は、こちらを参照