CDM(云数据迁移服务)数据源容器化部署,docker容器化快速部署经典案例
Docker是当前最为流行的容器化工具,在生产中有着十分广泛的应用。今天小编就如何利用Docker实现复杂环境的快速部署,为大家分享一个简单案例。 希望对大家快速构建、部署docker容器有所帮助。
小编与docker结缘,是在2015年,当时小编是南方某军校的研究生,所在的项目组承接了国家的重大国防型号项目-HiGIS(已经解密),项目的产品经过了四年的迭代开发,产品庞大,且环境十分复杂,部署这样一套集群往往需要我们组2-3个人,全力支持一周左右,且由于一些原因,部署的目的机器环境基本上不能为我控制,造成很大的部署成本。
机缘巧合,我在15年参加ACM GIS会议的时候,听了一场关于Docker快速部署WEB-GIS的介绍,顿时灵光闪现,觉得Docker可以用到我们的项目中来。后来,容器化改造后的HiGIS,部署成本下降到小时级,基本上一天之内肯定能搞定,由此激发了我对Docker的学习兴趣。
后来作为学生,在单服务器上部署自己博客、个人网站等,一机多用上也多次使用Docker进行部署。
时光荏苒,我毕业后加入了菊场-cloudbu-云数据迁移服务项目组,在项目组的工作中,我发现我们在每个版本在部署我们的测试数据源的时候,需要大量的重复部署,同时在测试过程中,如果出现了某个数据源宕机或其他不可恢复的情况时,需要花大量的精力重复部署,有时候一周还不能恢复,为研发工作带来极大的困扰。本着学以致用的精神,我向老大提出了,数据源部署的容器化改造方案。容器化改造,加快部署,是一个很好的提高复杂环境部署效率、避免重复劳动的方案,基于此我将我容器化部署数据源的经验分享给大家。步骤如下:
1、安装docker-------请自行google,支持离线、在线安装
2、制作容器镜像。
1)容器镜像在联网环境下,nginx、mysql、postgresql这些较为普遍镜像可以通过 docker pull命令直接从公共仓库中下载。dws、mappdb这些具有华为内部服务,可以根据其依赖环境,先下载对应的基础镜像,再基于基础镜像进行改造。例如dws对系统强依赖,依赖于suse操作系统,那么可以先docker pull suse*,将系统镜像先下载下来,然后通过docker run -p * -v* -d +镜像ID(docker images查看) 命令,将suse镜像跑起来成为容器,然后通过docker exec -ti 容器ID bash,进入容器后台,并按照dws的安装步骤安装dws即可,熟练后也可通过dockerfile完成镜像制作步骤,不做赘述。
2)容器改造后,可以通过docker commit +容器ID +镜像名,创建新的dws镜像
3)docker中的镜像可以通过 docker save 镜像ID(docker images查看) > *.tar 保存为tar包,这个tar包就可以在任何docker环境下部署为dws容器了。
3、部署镜像tar包
1)将tar包拷贝至需要部署的服务器(已安装docker)
2)将tar包导入docker: docker load < *.tar
3) 导入成功后,可以通过docker images 命令 查看其相关信息,重要的信息有ID、名称、tag等,记住images ID,后面步骤有用
4)基于镜像,启动容器,具体命令如下,命令含义: -p(端口映射) -v(挂载卷) --name(设置容器名称)......自行google
5)容器启动后,可以docker ps -a 查看容器信息,数据源可按照端口连接使用。
至此,容器化部署完成。第一次制作镜像稍微麻烦,后面重复部署都只需要运行几个命令即可。
- 点赞
- 收藏
- 关注作者
评论(0)