记得之前做网站开发的时候,因为服务端用的 MySQL 数据库,为了方便调试以及隔离生产与开发环境,自己就在本地也安装了一个 MySQL 数据库。但是用着用着慢慢的也发现了一些不舒服的地方,比如常驻后台的服务,半夜突然跳出来吓唬人的更新窗口。直到我遇见了 Docker,Docker 是一个比虚拟机更加轻量的虚拟化技术,它使用容器将应用与宿主环境隔离开。
在 Windows 上安装 Docker
首先启用 Windows 10 的容器功能,然后去 Docker 的官网,下载安装包。
跟着安装程序走完流程,Docker 就在 Windows 上愉快的游起来啦~
设置镜像地址
Docker 在创建容器的时候,需要从国外的网站下载必要的文件,由于显而易见的原因,我们在国内访问这个网站的速度不怎么快,所以我们需要设置一下国内可用的镜像。
我选择的是中科大的反向代理:http://docker.mirrors.ustc.edu.cn
方法如下:
-
右键单击托盘里面的 Docker 鲸鱼图标
-
单击 Settings
-
在下图中的红框位置填写中科大镜像地址
-
点击 Apply
下载 MySQL 镜像
打开 PowerShell
docker run --name zeekodb -e MYSQL_ROOT_PASSWORD=2333 -p 3307:3306 -d mysql
这条指令会从 Docker 的仓库下载最新的 MySQL 稳定版镜像,然后创建一个叫做 zeekodb 的容器,我们可以使用密码为 2333 的 root 账户通过 3307 端口连接到这个数据库。
一些基本操作
docker stop zeekodb //停止这个容器
docker start zeekodb //运行这个容器
这样我们就可以完全的把 MySQL 跟我们的 Windows 隔离开了。
自定义数据存储位置
上述的方法会把数据存在容器内部,如果我们需要更换新的数据库容器或者把数据迁移出来会不怎么方便,所以可以把数据文件存放在宿主机上。
首先要跟 Docker 共享一个硬盘,还是上面的 Setting 界面,把需要共享的硬盘勾上,然后点击 Apply。
创建新的容器
docker rm -f zeekodb // 删除之前的数据库
docker run --name zeekodb -v D:DockerDatazeekodb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=2333 -p 3307:3306 -d mysql
这个语句会创建一个与上面一摸一样的数据库,唯一的不同是,这个容器会把 MySQL 的数据文件储存在宿主机的 D:DockerDatazeekodb
这个目录下。