docker 容器的备份与恢复
备份容器首先,为了备份Docker中的容器,我们可以先查看我们想要备份的容器列表:# docker ps此命令可以查看所有容器:# docker ps -a找到我们需要备份的容器后,需要先创建该容器的快照,执行下面的命令:# docker commit -p 30b8f18f20b4 graphhopper_backup其中,-p 后第一个参数是要备份的容器的ID,第二个参数是新...
备份容器
- 首先,为了备份Docker中的容器,我们可以先查看我们想要备份的容器列表:
# docker ps - 此命令可以查看所有容器:
# docker ps -a - 找到我们需要备份的容器后,需要先创建该容器的快照,执行下面的命令:
# docker commit -p 30b8f18f20b4 graphhopper_backup
- 其中,-p 后第一个参数是要备份的容器的ID,第二个参数是新的镜像名称。此时,这个新镜像就已经保存下来了,可以执行下面的命令来查看镜像:
# docker images - 现在,上面的快照已经作为Docker镜像保存了。对于备份该快照,我们有两个选择,一个是我们可以登录进Docker注册中心,并推送该镜像到自己的Repositories中;另一种选择是是我们可以将Docker镜像打包成tar包备份到本地。
我们选择的操作是将镜像保存在Docker注册中心。我们需要运行 docker login 命令来登录进Docker注册中心,然后推送所需的镜像即可。
6. 首先,必须要登录自己的dockerhub 账号:
# docker login
然后填写用户名 和 密码,登录成功。
7. 上传之前,要先对镜像加tag:
# docker tag container-backup peisongli/peisongli:graphhopper_backup
其中,tag后面第一个参数是镜像名称,第二个参数是新的tag名称(其中peisongli/peisongli是自己的Repositories地址)
8. 加完tag后,执行保存操作:
# docker push peisongli/peisongli:mongo_backup
9. 等待保存完成。
恢复容器
成功备份了Docker容器后,可以通过docker pull恢复docker容器:
docker pull …
在镜像被加载后,我们将用加载的镜像去运行Docker容器。
# docker run -d -p 27017:27017 mongo_backup
重装系统后恢复:
部署docker UI管理界面:portainer
-
首先,去dockerhub下载镜像文件,然后按照操作说明进行portainer部署即可。
# docker pull portainer/portainer
# docker volume create portainer_data
# docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer -
部署完成后,即可登录,第一次登陆时需要设置密码。管理的库选择local。
恢复graphhopper:
- 从自己的dockerhub中pull镜像文件
# docker pull peisongli/peisongli:graphhopper_backup - 刚开始,通过下面的命令来部署容器
# docker run -p 8990:8989 --name graphhopper -d peisongli/peisongli:graphhopper_backup
此时,容器一启动就会自动关闭,无法保持一直开启的状态。
退出原因:
1、docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出
2、容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出
3、这个是 docker 的机制问题
解决办法:
添加-it 参数交互运行
添加-d 参数后台运行
这样就能启动一个一直停留在后台运行的graphhopper了。
# docker run -it -p 8990:8989 --name graphhopper -d peisongli/peisongli:graphhopper_backup /bin/bash - 此时虽然部署好了graphhopper,但是测试发现,graphhopper的路线规划功能仍无法正常使用,这是因为我们虽然部署好了graohhopper,但是并没有建立路径规划区域,即没有下载进行路径规划的地图区域。所以我们继续进行下面的操作。
- 首先,进入portainer,打开graphhopper容器的console。
打开后,首先默认进入的是data文件夹,可以发现,此时文件夹是空的,没有下载任何地图区域。
所以,我们先下载我们需要的英国的osm地图:
# wget http://download.geofabrik.de/europe/great-britain-latest.osm.pbf - 下载好地图后,还是无法进行路径规划,这是因为我们只下载了地图文件,但没有对其进行解析操作,所以我们继续进行下面的操作:
进入graphhopper文件夹,运行start.sh。
# cd graphhopper
# ./start.sh
等待一段时间,解析完成,graphhopper服务器打开,端口打开。此时,测试发现,可以成功执行路径规划了!!!?
更多推荐
所有评论(0)