備忘録として置いておきます.
起動
docker run --tty -p 3306:3306 --detach --name=DB-mysql --env MYSQL_DATABASE=DB --env MYSQL_USER="user" --env MYSQL_PASSWORD="password" --env MYSQL_ROOT_PASSWORD="PASSWORD" mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
データベース名はDB,コンテナ名はDB-mysqlとしています.
テーブル作成
docker exec --interactive DB-mysql mysql --host localhost --default-character-set=utf8mb4 --user=root --password=PASSWORD DB < data.sql
適当にdata.sqlというファイルを用意してください.
以下にdata.sqlの例を示しておきます.
USE DB; CREATE TABLE users( user_id varchar(64) NOT NULL, password varchar(128) NOT NULL );
あとは各アプリでlocalhost:3306/<database_name>
にアクセスするとつながると思います.
まとめ
テスト用にDBが欲しい時などに手軽に作成ができるのが,良い点だと思いました.
おまけ
dbの情報をsqlファイルにエクスポートする
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
CONTAINER, DATABASEなどは適宜変更をお願いします.