前言
最近接触到了Docker相关的知识,了解了它的相关特性,并基于它搭建了一些如mysql/redis/mq作为一个后端开发所必须的的环境,为什么使用Docker来搭建,听我娓娓道来。
梦回到刚学后端的时候,你需要搭建个mysql环境,然后你去搜了下windows mysql 环境搭建,得到了一种叫绿色版安装,一种叫傻瓜式(安装包)式安装,一顿操作之后我们的电脑终于多了一个mysql的服务,然后使用Navicat成功连接上了,开始沾沾自喜。
一个月后,由于某种原因(可能你删了mysql包的哪个文件)你需要把mysql重装一下,于是乎你又去搜了下windows mysql 卸载,你惊喜的得到了这么一个结果
WTF?彻底卸载可还行,于是你花了比安装更多的力气去卸载了一个mysql。
工作一年之后,你回想起你的这波操作,不禁笑了起来,你看着现在的vmware+centOS虚拟机中挂着的mysql+redis环境不禁沾沾自喜,虚拟机中的开发环境与本机完全隔离,哪天我不要环境了直接把虚拟机卸了就行,真是一个很完美的配置呢~
但是,你似乎忘记了,你花费了多大的力气踩了多少的坑才折腾好你这套环境,想到这你不禁为自己留下心疼的眼泪。
这套环境支撑你跑了很久,在此之间你还学会了很多linux的常规指令,成为了一个运维小能手,有一天你在逛社区的时候看到一篇文章叫做使用 Docker 快速搭建开发环境,能有多“快”,我得去瞅瞅,跟着它敲了一遍代码,mysql,它,起来了。
我告诉自己,我得去看看这东西,它是个什么妖魔鬼怪。
Docker介绍
Docker于2013年发布, 属于 Linux 容器的一种封装,提供简单易用的容器使用接口,可以轻易的使用/制作一个镜像(带有环境的容器)。具体详细的介绍网上有太多了,这里就不赘述了。
环境搭建
Windows Docker环境搭建
环境搭建的文章也很多,我这里主要说一下可能会踩到的坑,docker针对windows的用户主要有两个安装包可以下载,我们可以在阿里云平台看到关于安装的Docker的一些建议,具体区别可以参考这篇博客dockerToolbox和docker for windows的区别,本文主要讲一下Docker for Windows的安装流程。
- Docker Toolbox:Docker工具集安装器
- Docker for Windows:Windows平台的Docker安装
- 进入https://www.docker.com/products/docker-desktop 下载Docker for Windows安装包;
- 执行Docker for Windows安装程序,一路next,Docker运行成功后会有通知且右下角有logo图标存在;
- 没了,Docker这就算安装好了,使用PowerShell或者cmd执行命令试试
- Docker安装完成后,由于它需要Hyper-V的支持,这会与VMware的虚拟机启动产生冲突报错如下,具体原因请参考Docker 和 vmware 共存工作
熟悉一下基本流程
在这个阶段我们使用Docker拉取一个集成了SSH服务的centOS7系统镜像,将它运行起来并使用Xshell远程连接做一些基本的linux操作
# docker pull 拉取镜像指令 |
成功连接上容器并执行了一些基础操作
除去不必要的打印信息指令,我们只需要使用两行代码即可创建一个centOS系统镜像容器
可视化界面
指令操作虽然能让你更加熟练且装逼,但它总是繁琐的,Docker官方及周边提供了很多基于Docker指令的傻瓜式UI程序,在这里我主要介绍两款
Kitematic GUI程序
Kitematic是由Docker官方提供的一款桌面应用,提供了Windows平台下的绿色版压缩包,使用起来非常简单。
- 前往Kitematic的github releases仓库下载Kitematic-XXX-Windows.zip;
- 解压直接运行 Kitematic.exe,界面如下
点击一个容器可进入详情页面
点击Settings进入配置页面
Portainer Web程序
Portainer是一个轻量级的管理界面,可以让您轻松地管理不同的Docker环境,功能比Kitematic强大许多。
Portainer是基于网页来操作的,本质上是一个B/S架构的程序,它有单独的镜像发布在Docker中,所以它的使用也非常便捷,我们只需要拉取镜像运行即可。
# 拉取最新的portainer镜像 |
- 进入 http://localhost:9000/#/init/admin , 进行管理员配置;
- 初始化Docker端点配置http://localhost:9000/#/init/endpoint , 需要配合在Docker配置开启Web Api服务;
- 进入Portainer主页,查看相关配置
开发集成环境搭建
在有了前面环境的铺垫之后,现在可以很轻易就搭建好我们所需要的开发环境,具体操作无非是
- 找到所需的镜像及版本,拉取镜像
- 根据镜像描述做好配置并启动
- 测试环境是否可用
mysql
任意找一个GUI程序搜索到所需的镜像,拉取运行即可
关于mysql连接密码可在环境变量中配置重启
使用Navicat测试连接是否可用,这里主要要看镜像与宿主机器的端口映射表,使用 localhost:3306 root/123456 即可连接上mysql,环境搭建成功
redis
使用Kitematic搜索redis相关镜像,点击创建,使用RedisDesktopManager进行测试,默认是没有密码验证的模式,如果需要更改可以进入容器内部修改,这部分操作我会在后续的博客整理
rabbitmq
其他的环境操作都是类似的,当然如果没有搜索你想要的镜像(比如你想要一个mysql+redis的镜像),可以自己构建发布,在此之前你可能需要注册一个Docker账号
其他配置
Docker镜像加速
注册一个阿里云账号,进入控制台->容器镜像服务->镜像中心->镜像加速器,获取到加速器的地址,复制到Docker的Settings/Daemon中,重启Docker即可。
参考资料
Windows 10 安装Docker for Windows - 晓晨Master - 博客园
使用 Docker 快速搭建开发环境
dockerToolbox和docker for windows的区别- Null的博客- CSDN博客
Docker 和 vmware 共存工作 - rodert - CSDN博客
Docker各种可视化界面的比较