辛苦原创,引用请注明谢谢
正文:为什么现在大家都在用docker
现在越来越多的项目都在利用微服务(microservice), 容器化(containerize) 和云服务(AWS, Azure, Google Cloud). 将传统的项目容器化的优势在于,你的代码可以自由的部署在任何环境且不用担心系统的版本,相关配置,以及各种依赖的包。容器的种类有很多,大家最常用就数docker。 下面言归正传
利用docker安装一个sql 2017 数据库
在我们开发的过程中,大家都有这样的经历,开发代码的时候如果连接远程的测试服务器的数据库往往需要安装ssl,或者vpn然后还有网络延迟。 大家往往习惯在自己电脑本地安装一个测试数据库或者把数据库按在虚拟机上。这样做既笨重又影响开发效率,而且项目做完,还要花很多时间清理以前不用的数据库和数据。
有了docker,你可以安装任何你想要的数据库还有其版本, mongoldb,mysql,sqlserver, postgresql 等等等等。而且你还可以把配置好的docker文件分享给团队里的其他人,所有人都可以一键快速部署本地的数据库。使用完了,一个命令行迅速清除。
好了下面正式开搞,我这次项目是用的sql2017,本文就以这个为例, 我的开发电脑是macbook。
- 安装sql2017的image, docker pull:
首先安装2017的image, 利用docker 命令:
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
可以看到docker会从它的image repository下载这个镜像文件,很快.
2. image下载完成后,去创建容器还有运行,只需要如下命令
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=ABCdef1234"
-p 1433:1433 --name sql1
mcr.microsoft.com/mssql/server:2017-latest
下面我们一一解释这几个参数
-d 表示我们要将这个image 后台运行
-e 表示的是docker的变量, 后面跟着是变量名 - 变量的值
-p 是端口的设置
我们有如下变量:
ACCEPT_EULA 是用户的证书协议,可以保持这个不变,且默认是developer
默认用户名SA
SA_PASSWORD是你的数据库密码,最短8位
后面的http://mcr.microsoft.com/mssql/server:2017-latest,就是我们刚才下载好的镜像的名字
回车运行:
会显示一行字符串类似于
7a065368d52501a74e4d4b520100339f7d569bd4e11f048113313dfd8b522e8f
这个是你当前运行的docker 容器的id,
如果我们运行命令 docker ps, 会列出所有当前运行的docker容器,你会看到我们刚才的数据库成功运行。
3. 连接你的数据库
连接数据库很简单,ip 就是你的localhost, 端口号是我们刚才定义的1433,密码ABCdef1234
4. 删除你的docker image
docker rm sql1
后面一章,如果有人感兴趣的话,我们讲如何配置docker 数据库的存储, 如何创建docker容量以及如何用docker compose来管理你的容器。如果有人感兴趣的话可以留言,我会花时间写一章