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...
ec2-user へ権限をつける
ec2-user のユーザ権限で docker を扱えるようにするには、ec2-user のユーザを docker のグループに追加します。
sudo usermod -aG docker ec2-user
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
コンテナはイメージから作成されており、削除するときはプロセスの停止・削除、そしてイメージの削除を行います。