docker容器迁移
今天给大家说下怎么进行docer容器迁移,希望docker的大神不要打我,docker我才开始懂一点.相信很多人有时候在docker里配置好环境之后,会被要求放到其他地方进行测试,这就需要把整个环境进行迁移过去,这也是docker的方便之处,不用重新进行配置.
系统:centos 6.5(64位)
1.先有个配置好的docker环境,如果你没有的话,那还不赶紧去做个.
2.对docker容器进行停止运行
docker stop redmine
docker stop redmine-mysql
如果你容器这只运行了2个容器的话,那你可以使用
docker stop $(docker ps -q -a)
这个命令可以停止所有运行中的容器.
3.对docker容器进行备份
docker ps -a #先查看容器的id是多少
docker commit -p 容器id 新镜像名字
例:
docker commit -p 189591052dea redmine-bak
然后将镜像备份到本地:
docker save -o ~/redmine-bak.tar redmine-bak
最后把容器外的数据也打包
tar czf ~/redmine.tar.gz /srv/docker/redmine
4.将镜像和容器外的数据传到其他服务器上
scp ~/redmine-bak.tar root@ip:/root/
scp ~/redmine.tar.gz root@ip:/root/
5.恢复容器
docker load -i ~/redmine-bak.tar
tar zxf redmine.tar.gz -C /
然后启动容器
docker run --name redmine -tid \
--link redmine-mysql:mysql \
--publish 10083:80 \
--env REDMINE_HOST=192.168.10.240 \
--env REDMINE_PORT=10083 \
--volume /srv/docker/redmine/redmine:/home/redmine/data \
redmine-bak:latest
好了,这样就让容器迁移完成了.
ps:
我这只演示了一个容器的迁移过程,启动redmine容器里面其实还有个redmine-mysql的容器要迁移过来,不然根本无法启动,具体迁移过程参考redmine的.
系统:centos 6.5(64位)
1.先有个配置好的docker环境,如果你没有的话,那还不赶紧去做个.
2.对docker容器进行停止运行
docker stop redmine
docker stop redmine-mysql
如果你容器这只运行了2个容器的话,那你可以使用
docker stop $(docker ps -q -a)
这个命令可以停止所有运行中的容器.
3.对docker容器进行备份
docker ps -a #先查看容器的id是多少
docker commit -p 容器id 新镜像名字
例:
docker commit -p 189591052dea redmine-bak
然后将镜像备份到本地:
docker save -o ~/redmine-bak.tar redmine-bak
最后把容器外的数据也打包
tar czf ~/redmine.tar.gz /srv/docker/redmine
4.将镜像和容器外的数据传到其他服务器上
scp ~/redmine-bak.tar root@ip:/root/
scp ~/redmine.tar.gz root@ip:/root/
5.恢复容器
docker load -i ~/redmine-bak.tar
tar zxf redmine.tar.gz -C /
然后启动容器
docker run --name redmine -tid \
--link redmine-mysql:mysql \
--publish 10083:80 \
--env REDMINE_HOST=192.168.10.240 \
--env REDMINE_PORT=10083 \
--volume /srv/docker/redmine/redmine:/home/redmine/data \
redmine-bak:latest
好了,这样就让容器迁移完成了.
ps:
我这只演示了一个容器的迁移过程,启动redmine容器里面其实还有个redmine-mysql的容器要迁移过来,不然根本无法启动,具体迁移过程参考redmine的.
评论: