Amazon Linux 2 へ Docker をインストールする

まとめ

Amazon Linux 2 への docker のインストールは yum から行うことができます。
コンテナの動作確認から、プロセス停止、イメージ削除まで行って、docker インストール時の状態に戻すところまでやっていきます。

docker のインストール

インストールします

sudo yum -y install docker

起動します

sudo systemctl start docker

ステータスを確認します。active (running) になっていればOKです。

sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disable
d)
   Active: active (running) since Thu 2022-12-29 10:32:54 UTC; 4s ago
     Docs: https://docs.docker.com
  Process: 4077 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited, sta
tus=0/SUCCESS)
  Process: 4067 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCESS)
 Main PID: 4081 (dockerd)
    Tasks: 7
   Memory: 20.9M
   CGroup: /system.slice/docker.service
           └─4081 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock...

nginx で動作確認してみる

動作を確認するために、Webサーバである nginx を動かしてみます。
-d は detached(デタッチド)で実行することでバックグラウンド動作となります。
-p は 外側のポート番号:内側のポート番号 を指定しています。-p 8080:80 とすると、docker の外側からは8080番ポートでアクセスができます。

sudo docker run -d -p 8080:80 nginx

curl でアクセスできるか確認してみます。HTMLが表示されればOKです。

curl http://0.0.0.0:8080
$ curl http://0.0.0.0:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
===== 省略 =====
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

プロセスの確認

docker 上で動いているプロセスを確認してみます。-d オプションで起動したためプロセスは動作したままです。

sudo docker ps
$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS
NAMES
e14411c803d2   nginx     "/docker-entrypoint.…"   10 minutes ago   Up 10 minutes   0.0.0.0:
8080->80/tcp, :::8080->80/tcp   friendly_saha

コンテナの停止

動作しているコンテナを停止するには docker stop CONTAINER ID を実行します。

sudo docker stop e14411c803d2

コンテナイメージの削除

プロセスを停止しても、コンテナの元となっているイメージは残ったままです。
docker images でイメージの一覧を確認します。

sudo docker images
$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nginx        latest    1403e55ab369   7 days ago   142MB

イメージを削除するには docker rmi IMAGE ID を実行します。

sudo docker rmi 1403e55ab369

関連するものが削除されます。

Untagged: nginx:latest
Untagged: nginx@sha256:0047b729188a15da49380d9506d65959cce6d40291ccfb4e039f5dc7efd33286
Deleted: sha256:1403e55ab369cd1c8039c34e6b4d47ca40bbde39c371254c7cba14756f472f52
Deleted: sha256:0274f249eda4c376bde7cbe0b719ea3aef10201846d7262f37f7a0fc0b4fcf90
Deleted: sha256:e01fc49cb889c5dd6b11390e9863ba00f886315c5a403ee5955fb5c88d2aa576
Deleted: sha256:b2a367ee540c5d40c704fdece005b422f55f85a61b96a25bd99d6847669958a0
Deleted: sha256:2c1c6d39cbcc4767b0798aacc03f203951057e77c5edebca1fdfbcd4997f2919
Deleted: sha256:d260638126e1d2d3202dec36b67f124624fbcdad3afedd334e7260bf75dad8da
Deleted: sha256:8a70d251b65364698f195f5a0b424e0d67de81307b79afbe662abd797068a069

コンテナはイメージから作成されており、削除するときはプロセスの停止・削除、そしてイメージの削除を行います。