2023/08/24

Dockerお勉強:AmazonLinuxイメージで気づいた事

 次なる仕事の勉強としてDockerでコンテナを作ったり壊したりしてます。

AmazonLinux2(Web, PHP)とMySQL8のコンテナを作って、Laravel的構成を作ってみました。

AmazonLinux2側のシェルに入りMySQLクライアントからMySQL側(コンテナ名:db)に接続しようとしたところ、、、つながりません...orz

# mysql -h db -u root -p

エラー内容を読むとコンテナ名が名前解決できないみたい...

「Docker Engineで名前解決してくれるんだよね?」と思いつつ、Dockerのネットワーク設定を確認方法を調べつつ、Dockerのネットワーク設定内容を確認しました。

内容を見ましたが、ちゃんとコンテナ名とIPアドレスが設定されている...

う〜ん

再びAmazonLinux2側のシェルに入り、pingで確認しようとしましたがpingコマンドがインストールされていませんでした。

確認しようがないので、pingコマンドをインストール方法を調べて以下のコマンドでインストールしました。

# yum install iputils

インストール後、MySQLサーバにpingしたところ、無事反応がありました。

反応があったので、再び先ほどのmysqlコマンドを実行。

接続できた... orz

iputilsをインストールする事が正しい解決方法か分かりませんが、少なくともこれで名前解決できるようになりました。


その後、AmazonLinuxのlatestイメージ(AmazonLinux2023)で同じ構成を作ってみたところ、iputilsをインストールしなくても名前解決しました。

AmazonLinux2を使う場合の、ちょっとしたTipsでした。