最近慢慢熟悉了docker,打算将一些开发环境搬迁到docker容器里面便于管理和备份。

docker安装部分就不介绍了,可看官方文档

1.下载mysql镜像

1
docker pull mysql:8.0

下载的版本为8.0的mysql

2. 创建容器

1
docker run -p 3306:3306  --restart=always -name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0

创建容器,将容器的3306端口映射到本地的3306端口,设置为docker启动时容器自启动,命名为mysql,设置数据库密码为root

3.导出本地数据库

将本地mysql的数据库导出为sql文件

1
mysqldump -u root -p you_database > you_database.sql

4.将导出的sql文件复制到docker容器里

1
docker cp you_database.sql mysql:/opt/

此时sql文件就到mysql容器里的/opt/路径里面了。
然后进入容器里面操作

1
docker exec -it mysql bash

此时就进入到容器里面了,先在容器里面的mysql创建相应的数据库


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
▶ docker exec -it mymysql bash
root@19820b3cb9b8:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database YOU_DATABASE;

创建完相应的数据库后,就可以导入之前复制到容器里面的sql文件了。

1
root@19820b3cb9b8:/# mysql -u root -p YOUDATABASE < /opt/you_database.sql

此时就大功告成了,然后就可以卸载本地的mysql,达成删库跑路成就了。

1
2
▶ brew remove mysql
Uninstalling /usr/local/Cellar/mysql/8.0.12... (257 files, 233.2MB)