网站已经基本完成了从阿里云迁移到腾讯云的工作了,剩下就是原先在阿里云上使用docker搭建了一个redmine任务追踪系统。由于docker我并不熟悉,之前搭建这个系统也在2年前,基本上操作都忘记了。所以在迁移前还花费了两天查了相关资料,感觉迁移并不复杂。

如何迁移docker 容器实例

迁移的步骤如下:

1,在目标机器上安装docker.

2,  将本地的docker实例打包成镜像。执行命令如下:

执行 docker ps 命令找到当前需要迁移容器的id  (xxxxx)
执行 docker commit 5fxxxxxxxx(上一步的容器ID)  redmine.img  做一个镜像
执行 docker save redmine.img > redmine.tar   将镜像打包成文件 redmine.tar

 因为之前创建redmine的时候做了目录的挂载

docker run -d --name redmine -p 7780:3000 -v /mydocker/redmine/files:/usr/src/redmine/files -v /mydocker/redmine/db:/usr/src/redmine/sqlite -v /mydocker/redmine/plugins:/usr/src/redmine/plugins redmine

基本上所有的redmine运行产生的数据都存储在了/mydocker这个目录下面。因此,下一步就是将这个目录整体打包。

3,将上一步的redmine.tar这个镜像文件和mydocker.tar这个数据文件全部上传到新的服务器上。

4,新的服务器是使用的是宝塔面板,面板自带了docker功能。在面板的镜像参数中导入redmine.tar这个镜像。将mydocker.tar这个redmine的数据文件也解压到对应的位置。

5,在容器中添加一个容器。容器的镜像选择为刚刚上传的镜像,然后做端口和数据的挂载。基本上就是将执行的docker run命令的参数在图形界面中填一下即可。

整个的过程很顺利,没有出错。唯一的一个问题就是要确定服务器的端口放行,否则会提示拒绝访问。

小插曲

迁移很顺利,网站也顺利打开了。但就是特别的慢。查了资料,发现是docker限制了容器的可用cpu和内存。从上图中我们可以可以看到,宝塔面板创建的容器cpu默认限制为1个内存限制为100M.这是很不够的。

容器运行后,是不能修改配置的。没有好的办法,只能将之前的容器删除,然后新建一个容器,这次将容器的cpu和内存加大点。启动后,网站速度立马改善。

 

事后的感受

记得2015年的时候也做过一个redmine的迁移,那个时候折腾了好几天且还没有完全弄正常。这次基本上只用了一天的时间就完成了,非常的丝滑顺利。docker是一个非常好的技术,特别对于在不同环境下部署应用。采用适合的技术切实可以解决很多不必要的麻烦。

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前