Dockerを用いてMySQLコンテナをCLIで立ち上げる方法

備忘録として置いておきます.

起動

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などは適宜変更をお願いします.