在Windows Server 2016 和2019系统中已经原生支持Docker部署了,支持的非常友好。但是在Windows Server 2012中就没那么友好了,连Docker Desktop 都不能直接安装。
只能通过DockerToolbox 虚拟机来使用Docker。首先点击下载好 DockerToolbox-19.03 ,下面开始踩坑之路。双击打开安装包如图,点下一步,下一步即可
出现以下界面时,git一定要安装,后台执行初始华的时候,需要用到Git的Gitinash.exe,Docker Compose 可以去掉,除非你以后会装很多容器才会使用到。
Kitematic for windwos 这个是Docker操作界面需要保留。
然后下一步下一步,最后安装完了,桌面上会出现以下三个图标,第一个Oracle用不上,可以删除掉,保留后面两个。
此时千万别直接打开Docker Quickstart Terminal运行,下面开始划重点。Docker Quickstart Terminal在首次启动时在后台会下载相关文件用来配置运行环境。
因为国内网络你懂得,会卡到你哭。此时打开以下目录,把boot2docker.iso文件复制到C:UsersAdministrator.dockermachinecache这个目录下。如果目录已经有了可以跳过。
注意,boot2docker.iso文件也可能会过期导致初始化时后台重新下载,最好手动用迅雷下载好一个最新版本的,替换旧文件,下最新版载链接 https://github.com/boot2docker/boot2docker/releases
创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址,DOS下执行以下脚本
docker-machine create --engine-registry-mirror=https://xxxxx.mirror.aliyuncs.com -d virtualbox default
阿里云加速地址需要自己注册获取:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,执行脚本后如图等待一段时间配置完成。
最后双击桌面上的Docker Quickstart Terminal 图标,就可以正常启动Docker了,到此Docker已经安装完成,下面我们开始安装Mysql镜像和容器,这里选择版本是mysql5.7。
Power Shell 执行 Docker pull mysql:5.7,等待镜像下载完成。
创建mysql容器,执行以下脚本
docker run --restart=always --privileged=true --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1
这个脚本有点长,需要注意的是 -d mysql:5.7 这里一定要带上版本号,不然后台会重新下载一个mysql:least最新版本的镜像。下面这个参数也一定要加上
--lower_case_table_names=1
这个参数非常重要,mysql在linux上的查询语句是区分大小写的,如果这里不加上,就需要使用vie工具修改,特别麻烦,我上一篇文章里有写到。
下面我们看看创建好的容器,并进入mysql看看参数是否生效,如图:
我们可以看到 lower_case_table_names 这个参数值已经修改成 1 了,系统默认是 0的。
到此mysql安装完毕,你以为大功告成了吗?其实并没有,还差最后一个坑没有踩。这时用Navicat for MySQL 客户端去连接,一般我们是这样的
这时你会发现,根本无法连接,出现以下错误提示,不管你主机怎么改都不成功。网上各种说法都无法解决,没有把问题说到点子上。
这是因为以前是使用Docker Desktop的惯用思维,之前安装后就可以直接使用了,但是因为DockerToolbox是通过虚拟机的方式来运行Docker的。
所以这里我们应该把主机改成虚拟机的IP地址就ok了,通过以下脚本查看虚拟机的ip
docker-machine.exe ip
把连接主机的IP改成以上IP就大功告成了。