Docker+Railsコンテナ構築時のUnknown MySQL server host ‘mysql’エラー

Posted on 2019/02/11

TOC

Docker+Railsコンテナ構築時にUnknown MySQL server host ‘mysql’エラーが発生してなかなか解決しなかったので備忘として解決までの流れを記載する。

環境

今回は以下環境にて開発を行った。

  • MacOS Mojave 10.14.3
  • Docker 18.09.1
  • Ruby 2.5.3
  • Rails 5.2.2
  • MySQL 5.7.10

解決までに試したこと

docker-composeでappとdb(両方サービス名)のリンク・リンク名の見直し。(以下URL参照)

https://qiita.com/merochiyo/items/14dde59e960c0b35d8a0 dbのコンテナが立ってからappが起動及びdb:createすること。 http://otiai10.hatenablog.com/entry/2016/02/04/160515

解決方法

明確な原因はわからなかったのですが、以下コマンドを使うことで解決しました。恐らくですが、Dockerの古いイメージが残ってしまい、そちらを参照し続けてしまったことなどが原因かと思います。(直前にMySQLのバージョンを8に変更し、認証プラグインがcaching_sha2_passwordになってエラーになり、バージョンを5.7.10に戻したりしていたので、その際のキャッシュなどを使っていたのかなと推測)

以下コマンドでは、可動していないものも含め全てのDockerイメージを削除します。

$ docker stop $(docker ps -q)
$ docker rm $(docker ps -aq)
$ docker rmi $(docker images -q)

まとめ

Dockerがどうやってもうまく動かない時は可動しているイメージを削除するだけでなく古いイメージを削