DockerCompose上のphpMyAdminで「Name or service not known」が出た時の対処法

dockerのアイキャッチ画像

・docker上のphpMyAdminで「Name or service not known」というエラーが出た。
・docker上のphpMyAdminでSQLサーバーにログインできない。

今後の運用を考えdocker-composeでphpMyAdminを作成したのですが、以下のようなエラーが発生しました。

下記解消のために長時間詰まったのですが原因と対処法が分かりましたので、対処法を紹介します。

ちなみに作成の際に使用したdocker-composeの記載は下記のとおりです。

原因1:PMA_HOST: データベース名の記載もれ

PMA_HOSTとはサーバーのホスト名(今回の場合はコンテナ名)を指定する記述です。

PMA_HOSTをdocker-compose.ymlに記載しなければ、どこのデータベースに接続できないか判断ができないため、記載必須です。下記に実際に記載した例を載せておきます。

※PMA_ARBITRARY=1を記載すればデータベースの指定ができるため、場合によっては記載不要です。

私の場合は、PMA_ARBITRARY=1の記載がないので、docker-compose内に記載する必要がありました。

原因2:ネットワークオプションの記載もれ

今後の運用も考えてネットワークオプションをつけてコンテナを作成しておりましたが、phpMyAdminにネットワークオプションの指定を忘れておりました。

ネットワークオプションがないと、デフォルトのネットワークの中にコンテナが作成されてしまい、通信できなくなってしまうので、記載必須です。下記に実際に記載した例を載せておきます。

※もともとネットワークオプションを使っていない環境であれば、記載不要。

以上です。私はこの2点を修正し、dockerコンテナを再起動したところ直りました。

ぜひ参考にしてみてください。