Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

EC2(Amazon Linux 2)にDocker CEをインストールしてみる

EC2(Amazon Linux 2)にDocker CEをインストールしてみる。

インストール方法をググっているとDocker公式のCentOS向けインストール手順が出てきたので、Amazon Linux 2も同じRHEL系だからいけるいけるとやってみた。

結果的にこの手順ではインストールできませんでした。成功した手順だけ見たい方は本ページ中ほどの "【再チャレンジ】amazon-linux-extrasでインストール" からご参照ください

EC2インスタンスを立ち上げてSSHログイン済みのところからスタート。

インストール方法の選択

Docker CEのインストール方法はいくつかあるらしい。

公式ドキュメントより引用~

・たいていのユーザは Docker のリポジトリをセットアップ して、そこからインストールしています。 インストールやアップグレードの作業が簡単だからです。 この方法をお勧めします。
・ユーザの中には RPM パッケージをダウンロードし、手動でインストールしている方もいます。 アップグレードも完全に手動となります。 この方法は、インターネットにアクセスできない環境で Docker をインストールするような場合には有用です。
・テスト環境や開発環境向けに、自動化された 便利なスクリプト を使って Docker のインストールを行うユーザもいます。

おすすめされているリポジトリを使ったインストールをやってみる。

リポジトリのセットアップ

yum-utils、device-mapper-persistent-data、lvm2をインストール。

$ sudo yum install -y yum-utils \
> device-mapper-persistent-data \
> lvm2
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                        | 3.7 kB  00:00:00
Package yum-utils-1.1.31-46.amzn2.0.1.noarch already installed and latest version
Package device-mapper-persistent-data-0.7.3-3.amzn2.x86_64 already installed and latest version
Package 7:lvm2-2.02.177-4.amzn2.0.2.x86_64 already installed and latest version
Nothing to do
$ 

既にインストール済みだった模様。

続いてリポジトリのセットアップ。

$ sudo yum-config-manager --add-repo \
> https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
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
$ 

Docker CEのインストール

インストール
$ sudo yum install docker-ce
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                 | 3.7 kB  00:00:00
docker-ce-stable                                                           | 3.5 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                                  |  44 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 3:19.03.11-3.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: 3:docker-ce-19.03.11-3.el7.x86_64
--> Processing Dependency: containerd.io >= 1.2.2-3 for package: 3:docker-ce-19.03.11-3.el7.x86_64
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-19.03.11-3.el7.x86_64
--> Running transaction check
---> Package containerd.x86_64 0:1.3.2-1.amzn2 will be obsoleted
---> Package containerd.io.x86_64 0:1.2.13-3.2.el7 will be obsoleting
--> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.2.13-3.2.el7.x86_64
---> Package docker-ce.x86_64 3:19.03.11-3.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: 3:docker-ce-19.03.11-3.el7.x86_64
---> Package docker-ce-cli.x86_64 1:19.03.11-3.el7 will be installed
---> Package runc.x86_64 0:1.0.0-0.1.20200204.gitdc9208a.amzn2 will be obsoleted
--> Finished Dependency Resolution
Error: Package: containerd.io-1.2.13-3.2.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74
Error: Package: 3:docker-ce-19.03.11-3.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
$ 

エラーとなった。

同じRHEL系とは言えCentOS向けだしなぁと思いつつ解決策をググっていると同じエラーになっている方がいたのでお知恵を拝借。どうも先にインストールしたdocker-ce.repoが悪さをしている模様。AWSにもAmazon Linux 2にDocker CEをインストールする方法が載っているとのことで、そちらを実行してみる。

【再チャレンジ】amazon-linux-extrasでインストール

再チャレンジ
$ sudo amazon-linux-extras install docker
Installing docker
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Cleaning repos: amzn2-core amzn2extra-docker docker-ce-stable
13 metadata files removed
6 sqlite files removed
0 metadata files removed
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                 | 3.7 kB  00:00:00
amzn2extra-docker                                                          | 3.0 kB  00:00:00
docker-ce-stable                                                           | 3.5 kB  00:00:00
(1/7): amzn2-core/2/x86_64/group_gz                                        | 2.5 kB  00:00:00
(2/7): amzn2-core/2/x86_64/updateinfo                                      | 218 kB  00:00:00
(3/7): amzn2extra-docker/2/x86_64/updateinfo                               |   69 B  00:00:00
(4/7): amzn2extra-docker/2/x86_64/primary_db                               |  68 kB  00:00:00
(5/7): docker-ce-stable/x86_64/updateinfo                                  |   55 B  00:00:00
(6/7): docker-ce-stable/x86_64/primary_db                                  |  44 kB  00:00:00
(7/7): amzn2-core/2/x86_64/primary_db                                      |  41 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package docker.x86_64 0:19.03.6ce-4.amzn2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================
 Package          Arch             Version                      Repository                   Size
==================================================================================================
Installing:
 docker           x86_64           19.03.6ce-4.amzn2            amzn2extra-docker            37 M

Transaction Summary
==================================================================================================
Install  1 Package

Total download size: 37 M
Installed size: 161 M
Is this ok [y/d/N]: y
Downloading packages:
docker-19.03.6ce-4.amzn2.x86_64.rpm                                        |  37 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : docker-19.03.6ce-4.amzn2.x86_64                                                1/1
  Verifying  : docker-19.03.6ce-4.amzn2.x86_64                                                1/1

Installed:
  docker.x86_64 0:19.03.6ce-4.amzn2

Complete!
  0  ansible2                 available    \
        [ =2.4.2  =2.4.6  =2.8  =stable ]
  2  httpd_modules            available    [ =1.0  =stable ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]
  5  postgresql9.6            available    \
        [ =9.6.6  =9.6.8  =stable ]
  6  postgresql10             available    [ =10  =stable ]
  8  redis4.0                 available    \
        [ =4.0.5  =4.0.10  =stable ]
  9  R3.4                     available    [ =3.4.3  =stable ]
 10  rust1                    available    \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2  =1.31.0  =1.38.0
          =stable ]
 11  vim                      available    [ =8.0  =stable ]
 13  ruby2.4                  available    \
        [ =2.4.2  =2.4.4  =2.4.7  =stable ]
 15  php7.2                   available    \
        [ =7.2.0  =7.2.4  =7.2.5  =7.2.8  =7.2.11  =7.2.13  =7.2.14
          =7.2.16  =7.2.17  =7.2.19  =7.2.21  =7.2.22  =7.2.23
          =7.2.24  =7.2.26  =stable ]
 17  lamp-mariadb10.2-php7.2  available    \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5
          =10.2.10_7.2.8  =10.2.10_7.2.11  =10.2.10_7.2.13
          =10.2.10_7.2.14  =10.2.10_7.2.16  =10.2.10_7.2.17
          =10.2.10_7.2.19  =10.2.10_7.2.22  =10.2.10_7.2.23
          =10.2.10_7.2.24  =stable ]
 18  libreoffice              available    \
        [ =5.0.6.2_15  =5.3.6.1  =stable ]
 19  gimp                     available    [ =2.8.22 ]
 20  docker=latest            enabled      \
        [ =17.12.1  =18.03.1  =18.06.1  =18.09.9  =stable ]
 21  mate-desktop1.x          available    \
        [ =1.19.0  =1.20.0  =stable ]
 22  GraphicsMagick1.3        available    \
        [ =1.3.29  =1.3.32  =1.3.34  =stable ]
 23  tomcat8.5                available    \
        [ =8.5.31  =8.5.32  =8.5.38  =8.5.40  =8.5.42  =8.5.50
          =stable ]
 24  epel                     available    [ =7.11  =stable ]
 25  testing                  available    [ =1.0  =stable ]
 26  ecs                      available    [ =stable ]
 27  corretto8                available    \
        [ =1.8.0_192  =1.8.0_202  =1.8.0_212  =1.8.0_222  =1.8.0_232
          =1.8.0_242  =stable ]
 28  firecracker              available    [ =0.11  =stable ]
 29  golang1.11               available    \
        [ =1.11.3  =1.11.11  =1.11.13  =stable ]
 30  squid4                   available    [ =4  =stable ]
 31  php7.3                   available    \
        [ =7.3.2  =7.3.3  =7.3.4  =7.3.6  =7.3.8  =7.3.9  =7.3.10
          =7.3.11  =7.3.13  =stable ]
 32  lustre2.10               available    \
        [ =2.10.5  =2.10.8  =stable ]
 33  java-openjdk11           available    [ =11  =stable ]
 34  lynis                    available    [ =stable ]
 35  kernel-ng                available    [ =stable ]
 36  BCC                      available    [ =0.x  =stable ]
 37  mono                     available    [ =5.x  =stable ]
 38  nginx1                   available    [ =stable ]
 39  ruby2.6                  available    [ =2.6  =stable ]
 40  mock                     available    [ =stable ]
 41  postgresql11             available    [ =11  =stable ]
 42  php7.4                   available    [ =stable ]
 43  livepatch                available    [ =stable ]
 44  python3.8                available    [ =stable ]
[ec2-user@ip-172-31-14-246 ~]$

インストール成功。
 

ec2-userのセカンダリグループにdockerを追加 

毎回sudoしなくていいようにdockerをグループ追加をしておく。

グループ追加
$ sudo usermod -a -G docker ec2-user
$
$ id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)
$ 

docker起動

$ sudo systemctl start docker.service
$ 
$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-06-18 17:12:07 UTC; 9s ago
     Docs: https://docs.docker.com
  Process: 6680 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited, status=0/SUCCESS)
  Process: 6662 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCESS)
 Main PID: 6687 (dockerd)
    Tasks: 8
   Memory: 45.5M
   CGroup: /system.slice/docker.service
           mq6687 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --defa...

Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal systemd[1]: Started Docker App...
Jun 18 17:12:07 ip-172-31-14-246.ap-northeast-1.compute.internal dockerd[6687]: time="2020-06-1...
Hint: Some lines were ellipsized, use -l to show in full.
$ 
$ 
$ 
$ docker --version
Docker version 19.03.6-ce, build 369ce74
$ 

自動起動設定

$ sudo systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
$ 
$ sudo systemctl list-unit-files | grep docker.service
docker.service                                enabled
$ 

 
 
最後にCentoOS向け手順で設定したリポジトリは不要っぽいので削除。

$ cd /etc/yum.repos.d
$ 
$ ls -l
total 12
-rw-r--r-- 1 root root  985 Nov  1  2019 amzn2-core.repo
-rw-r--r-- 1 root root 1015 Jun 18 16:59 amzn2-extras.repo
-rw-r--r-- 1 root root 2424 Oct 18  2019 docker-ce.repo
$ 
$ sudo rm -f docker-ce.repo
$ 
$ 
$ docker --version
Docker version 19.03.6-ce, build 369ce74
$ 

 
 

以上です。おつかれさまでした。

simis
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away