Amazon Linux2にdockerをインストールする

Amazon Linux2にdockerをインストールする
目次

AMIをAmazon Linux2に変更したのですが、 yum install docker でdockerがインストールできなくなってしまったので対処方法を調査しました。

モチベーション

Amazon Linux2にDockerがインストールできなくなっている!

Amazon LinuxからAmazon Linux2にアップデートしたのですが、 2018/06に Amazon Linux 2 LTS Candidate が発表されたあたりから、 packerのジョブがエラーで止まるようになってしまいました。

内容を確認してみると、Ansible の yum install docker の部分で落ちていることがわかりました。

詳細は確認していませんが、yumの設定が変わったのかもしれません。

yum search docker をしても docker が見つかりませんでした。

Extras Library で docker をインストールする

調査をしたところ、案外簡単に答えが見つかりました。

Amazon Linux2から Extras Library が導入され、 一部のライブラリは Extras Library 経由にてインストールができるようになっているようです。

どのようなライブラリがインストールできるか確認してみましょう。

 1amazon-linux-extras list
 2
 3  0  ansible2                 available  [ =2.4.2 ]
 4  1  emacs                    available  [ =25.3 ]
 5  2  memcached1.5             available  [ =1.5.1 ]
 6  3  nginx1.12                available  [ =1.12.2 ]
 7  4  postgresql9.6            available  [ =9.6.6  =9.6.8 ]
 8  5  python3                  available  [ =3.6.2 ]
 9  6  redis4.0                 available  [ =4.0.5 ]
10  7  R3.4                     available  [ =3.4.3 ]
11  8  rust1                    available  [ =1.22.1  =1.26.0 ]
12  9  vim                      available  [ =8.0 ]
13 10  golang1.9                available  [ =1.9.2 ]
14 11  ruby2.4                  available  [ =2.4.2  =2.4.4 ]
15 12  nano                     available  [ =2.9.1 ]
16 13  php7.2                   available  [ =7.2.0  =7.2.4  =7.2.5 ]
17 14  lamp-mariadb10.2-php7.2  available  \
18        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
19 15  libreoffice              available  [ =5.0.6.2_15 ]
20 16  gimp                     available  [ =2.8.22 ]
21 17  docker                   available  [ =17.12.1  =18.03.1 ]
22 18  mate-desktop1.x          available  [ =1.19.0  =1.20.0 ]
23 19  GraphicsMagick1.3        available  [ =1.3.29 ]
24 20  tomcat8.5                available  [ =8.5.31 ]

docker が含まれていますね。

早速インストールを試してみましょう。

 1amazon-linux-extras install docker
 2
 3(中略)
 4
 5インストール:
 6  docker.x86_64 0:18.03.1ce-3.amzn2
 7
 8依存性関連をインストールしました:
 9  libtool-ltdl.x86_64 0:2.4.2-22.2.amzn2.0.1
10
11完了しました!
12  0  ansible2                 available  [ =2.4.2 ]
13  1  emacs                    available  [ =25.3 ]
14  2  memcached1.5             available  [ =1.5.1 ]
15  3  nginx1.12                available  [ =1.12.2 ]
16  4  postgresql9.6            available  [ =9.6.6  =9.6.8 ]
17  5  python3                  available  [ =3.6.2 ]
18  6  redis4.0                 available  [ =4.0.5 ]
19  7  R3.4                     available  [ =3.4.3 ]
20  8  rust1                    available  [ =1.22.1  =1.26.0 ]
21  9  vim                      available  [ =8.0 ]
22 10  golang1.9                available  [ =1.9.2 ]
23 11  ruby2.4                  available  [ =2.4.2  =2.4.4 ]
24 12  nano                     available  [ =2.9.1 ]
25 13  php7.2                   available  [ =7.2.0  =7.2.4  =7.2.5 ]
26 14  lamp-mariadb10.2-php7.2  available  \
27        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
28 15  libreoffice              available  [ =5.0.6.2_15 ]
29 16  gimp                     available  [ =2.8.22 ]
30 17  docker=latest            enabled    [ =17.12.1  =18.03.1 ]
31 18  mate-desktop1.x          available  [ =1.19.0  =1.20.0 ]
32 19  GraphicsMagick1.3        available  [ =1.3.29 ]
33 20  tomcat8.5                available  [ =8.5.31 ]

実運用の際にはバージョン固定や -y オプションを入れたりします。

1amazon-linux-extras install -y docker=18.03.1

Extras Library に関する説明は クラスメソッドさんがまとめてくれている ので、こちらを参考にすると良いでしょう。

参考にさせていただいたサイト