ローカルで実行できるMySQLコンテナ
localのポートは23306としている。
- build
# M1 mac $ docker build --platform linux/amd64 -t docker-mysql-57:1 -f Dockerfile-57 . # Intel mac $ docker build -t docker-mysql-57:1 -f Dockerfile-57 .
- run
$ docker run --name docker-mysql-57 -d -v $PWD/db-57:/var/lib/mysql -p 23306:3306 docker-mysql-57:1
- login to container
$ docker exec -it docker-mysql-57 bash #> root@c18990f61d56:/#
- mysql login
$ mysql -u testuser -p #> Enter password: testpass #> mysql>
- stop container
$ docker stop docker-mysql-57
localのポートは13306としている。
- build
# M1 mac $ docker build --platform linux/amd64 -t docker-mysql-80:1 -f Dockerfile-80 . # Intel mac $ docker build -t docker-mysql-80:1 -f Dockerfile-80 .
- run
$ docker run --name docker-mysql-80 -d -v $PWD/db-80:/var/lib/mysql -p 13306:3306 docker-mysql-80:1
- login to container
$ docker exec -it docker-mysql-80 bash # root@524e3589f929:/#
- mysql login
$ mysql -u testuser -p #> Enter password: testpass #> mysql>
- stop container
$ docker stop docker-mysql-57
任意のMySQLからデータを移植する
- generate mysql dump file
$ mysqldump -u {user name} -p -h {host name} {database name} > {hoge}.sql
- copy file to container
# MySQL57 $ docker cp {project name}{date}.sql docker-mysql-57:/tmp/ # MySQL80 $ docker cp {project name}{date}.sql docker-mysql-80:/tmp/
- login to container
# MySQL57 $ docker exec -it docker-mysql-57 bash # MySQL80 $ docker exec -it docker-mysql-80 bash
- restore to local mysql
$ mysql -u testuser -p test < tmp/{project name}{date}.sql
# MysQL57
host: '127.0.0.1',
user: 'testuser',
password: 'testpass',
database: 'test',
port: 23306,
# MysQL80
host: '127.0.0.1',
user: 'testuser',
password: 'testpass',
database: 'test',
port: 13306,