次なる仕事の勉強として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でした。