docker-compose.yml
version: "3.8"
services:
db:
container_name: okozukai-db
image: mysql:8
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: okozukai
MYSQL_USER: okozukaiadmin
MYSQL_PASSWORD: xxxxx
MYSQL_ROOT_PASSWORD: rootpassword
platform: linux/x86_64
expose:
- 3306
ports:
- 3306:3306
volumes:
- mysql_db:/var/lib/
networks:
okozukai-network:
adminer:
container_name: okozukai-adminer
image: adminer
restart: always
depends_on:
- db
ports:
- 8090:8080
networks:
okozukai-network:
volumes:
mysql_db:
driver: local
networks:
okozukai-network:
基本的には、dockerhubのMySQLの解説に沿ってdocker-compose.ymlを記述します。
その後、
docker-compose up -d
でコンテナを起動します。
29行目...ホストの8090ポートを、コンテナの8080ポート(=adminerの使用ポート)に接続します。
ブラウザでadminerにアクセス
docker-compose.ymlでホストの8090ポートをadminer使用ポートに接続したので、ブラウザでhttp://localhost:8090/にアクセスします。
すると、adminerのログインページが開きます。
サーバ...MySQLコンテナのサービス名を指定します。(localhostではありません)
ユーザ名...MySQLコンテナのMYSQL_USERの値です。
パスワード...MySQLコンテナのMYSQL_PASSWORDの値です。
データベース...MySQLコンテナのMYSQL_DATABASEの値です。
入力して、ログインを押すと、テーブルとビューが表示されます。
エラー SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name does not resolve
このエラー、または「SQLSTATE[HY000] [2002] No such file or directory」と出た場合は、サーバの入力値が誤っている可能性があります。
サーバは、MySQLのserivce名になります。
本記事のdocker-compose.ymlでは3行目で「db」と記述しているので、サーバは「db」になります。