AWS EC2へのDocker, docker-composeのインストール

前回、docker-composeでWordpressサイトのインストールを書きましたが今回はその「後日談」です。今まで安定稼働していたEC2に罪を感じて破壊、そして1からインスタンスを起動してDockerとdocker-composeを入れた経緯を記します。

時間のない人のためにdocker, docker-composeのインストール方法を先にメモします。2024/5/25現在(v.2.4.1) https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/

$ sudo yum install -y docker

# usermod -aG docker ec2-user

# systemctl restart docker

# systemctl enable docker

$ sudo chmod 666 /var/run/docker.sock
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
$ mkdir -p $DOCKER_CONFIG/cli-plugins
$ curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
$ sudo chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
$ docker compose version
$ cat .dockerpassword.txt | docker login --username $USER --password-stdin

EC2へのインストールで躓いたのはネームサーバーに関するもので具体的には以下の2点です。

1./etc/resolv.conf は「DHCPオプションセット」のネームサーバーを反映するらしい。(変更はそっちから?)

2.Dockerインストール後は /etc/docker/daemon.json を設定せよ。

ネームサーバーは「8.8.8.8」「8.8.4.4」が無難だと思いました。(自前でDNS建てるのがめんどくさいのとRoute53もあるし・・・が理由です。)

私は、これで安心してEC2からpingが打てるようになりました。

2.で daemon.json を設定しないとdocker-compose で悶絶しました。じゃけん、設定しましょう~ね

# vi /etc/docker/daemon.json

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

※これしないとDockerが〇野郎に思えてくるレベルです。そして、docker 再起動

# systemctl restart docker

あとAmazon Linux2023でWindowsアプリのTeratermからの接続を受け入れるには以下の設定が必要でした。接続拒否されて焦った件。

# update-crypto-policies --show
DEFAULT
# update-crypto-policies --set LEGACY

AWS EC2のRHEL9にTeraTerm4からログインする – Qiita

docker compose v2 はdocker-compose v1から細かな仕様変更があり旧ユーザーは移行に苦労しているのではないでしょうか。ここでは新しく始めるユーザーはv2をお勧めしておきます。

そもそも旧インスタンスを破壊したきっかけはPostfix と Dovecot, Rspamdをインストールしてメールテストをしていた時にリバースDNSが決まらずdnsmasqとNetworkManagerをインストールして設定をミスしたせいでした。CPUに負荷がかかりインスタンスを再起動したところ、例の巻き込みに遭ってしまいました。シリアルコンソール接続はパスワード設定がデフォルトでログインできずセッションマネージャーは起動していませんでした。スナップショットも取っておらず復旧は絶望でしたがローカル環境でWordpressの.XMLデータは保持していたので今回めでたくAmazon Linux2023インスタンスを起動に成功した次第です。今回の教訓としていかにレジリエンスを確保するか「バックアップが大事」を初心に帰って身に染みて学習しました。

同じカテゴリーの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です