Win10 配置Docker -- 运行MySQL

时间:2024-04-08 22:18:53

在每次需要个MySQL环境或Python、PHP环境什么的时候我总会第一时间想到开个VMware虚拟机,这样日复一日,电脑里的虚拟就将近十个了,我也厌倦了每次重装ubuntu...  所以我想结束这些烦恼,用听闻依旧的Docker来管理我的那些七零八催的软件环境们。废话说完了,那就开始吧。

电脑环境 : windows 10  64位

第一步: 安装Docker:首先到docker官网下载适合自己电脑当前系统的版本,并安装它(安装过程跟安装个QQ差不多,不多说了)。 官网 https://www.docker.com 。 安装完成后它会提示你注销一次,不过我建议你还是乖乖重启一下系统最好,这是多年老司机的诚恳建议。

第二步:下载mysql镜像:这时候你电脑屏幕右下角有了docker图表(白色的鲸鱼),然后单击Docker Store , 网站打开后输入mysql,应该会搜出不止一个结果,我从中选择了mysql (By Docker 10M+),详细页面进去后页面右边会提供安装命令,如mysql的安装命令:

Win10 配置Docker -- 运行MySQL

[plain] view plain copy
  1. docker pull mysql  

打开电脑CMD,然后输入上面的命令回车即可下载。不过这时候你会踩到第一个坑!你会发现下载速度超级慢,这个应该可以归功于谁,你们心里清楚我不多说。。。 

第二·五步:解决下载慢问题:为了解决下载炒鸡慢问题,我们可以使用国内mirror来加速。你打开www.daocloud.com。然后用微信或github账号登录后就能得到一个mirror地址,就像我的一样,看图:

Win10 配置Docker -- 运行MySQL

然后你右击桌面屏幕右下角的那个白色鲸鱼,然后选择settings,然后选择Daemon页面,在Registry mirrors里面把刚才获取的mirror地址填上去,并apply一下。这时候docker会重启,等他重启完了后,再下载刚下不完的mysql,你会发现速度快了几十倍!

第三步:创建mysql实例:等他下载完后,你输入以下命令可以创建一个mysql实例了:

[html] view plain copy
  1. docker run --name first-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql  
其中first-mysql是实例名称,3306是mysql默认端口,123456是root密码,这些你都可以自己改掉,命令敲完后,应该会出现下面这样:

Win10 配置Docker -- 运行MySQL

第四步:连接mysql实例:上一步只要没出错,那你就成功创建一个mysql实例了,接下来你可以和平时一样使用这个数据库,我用navicat连接刚创建的实例的,你可以用你习惯用的软件或者在代码里连接使用数据库即可,没有特殊配置要求。如图:

Win10 配置Docker -- 运行MySQL

这时候成功配置好了Win10环境下的Docker,并成功运行了MySQL实例了。

聪明人会继续看 哈哈哈

一起学习一下几个docker命令,会帮助你今后少踩几个坑!

第一, 列出目前本地电脑Docker中有的所有container(也就是实例吧)命令:

[plain] view plain copy
  1. docker ps -a  

Win10 配置Docker -- 运行MySQL

第二,我要删掉一个已有的container怎办? 

首先你要让目标container停止运行,然后才可以删掉,比如我想停掉并删掉first-mysql这个实例

[plain] view plain copy
  1. docker stop ab8b7a7a468a  
  2. docker rm ab8b7a7a468a  

输入的时候输入container_id 哦!

第三,我如何启动一个已有的container呢? 其实你每次启动Docker的时候它应该自动启动所有已有的container,不过你真想学用命令来启动的话,这样

[plain] view plain copy
  1. docker start ab8b7a7a468a  

也就是docker start 然后你要启动的container id就行了。

第四,我如何在新建的mysql实例(也可以说容器)创建数据库呢?

首先你要进mysql所在实例(容器)的bash中去,具体命令:

[plain] view plain copy
  1. docker exec -it test-mysql bash  
上面的命令注意看,这次不是container id,而是实例的名称(我们创建的实例名称叫test-mysql的 还记得吧)

成功进入bash环境后,通过如下命令进mysql里:

[plain] view plain copy
  1. mysql -u root -p  
哈哈哈,眼熟么?这不就是在linux控制台里进入mysql的命令么?是的! 你输入密码就可以进入到mysql里面了,然后随你create database 或 create table , show databases 反正 whatever

好了应该讲的都讲完了,我也该下班了,下次讲讲在docker中部署arcgis python然后弄出几个好玩的程序来。

注:如果链接数据库提示错误:Host ‘xxx’ is not allowed to connect这样的错误,它的意思就是安装了数据库的服务器不允许部署项目的服务器进行远程连接。也就是权限问题,修改权限就可以了,修改方法是:

在mysql的bin目录下执行:mysql -uroot -p密码 登陆到数据:
执行use mysql;
select host,user,password from user;
可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。
调整方法:
执行:update user set host='%' where user ='root';
执行刷新权限:flush privileges;
可以测试外网连接mysql服务器。