利用Docker部署应用非常方便,随着镜像的更新,我们的应用也需要及时更新,这周就来简单给大家介绍三种更新Docker镜像的方法。
1、更新用Docker命令部署的应用 {#1更新用docker命令部署的应用}
以halo博客为例子(方法通用),
第一步 {#第一步}
利用docker ps
命令确定容器的名字,
docker ps
这边圆圈圈起来的就是容器的名字啦。
Halo里面的容器名字就是halo
第二步 {#第二步}
备份数据(重要),并停止容器
利用docker inspect 容器的名字
找出你容器的映射到本地的文件路径,
图片里就是:
cp -r /root/data/docker_data/zfile/zfile/data /root/data/docker_data/zfile/zfile/data.backup
Halo里面就是:
cp -r ~/.halo ~/.halo.1.4.15 # 备份并重命名为.halo.1.4.15
第三步 {#第三步}
拉取最新的容器镜像
docker pull halohub/halo:1.4.16
halohub/halo:1.4.16
这部分替换成你需要更新的镜像的名字和版本号
很多是类似这种xxxxx/xxxxx:latest
第四步 {#第四步}
重新创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.16
这部分的命令相信之前看过视频的小伙伴都保存在了自己对应文件夹下的config.txt
文件里了,直接粘贴出来,修改最后面镜像的部分(这里是halohub/halo:1.4.16
)重新部署就ok了。
参考来源:Halo官方文档
2、更新用Docker-compose部署的应用 {#2更新用docker-compose部署的应用}
很简单,只要三步。
第一步 {#第一步-1}
进入到你docker-compose所在的文件夹下,执行
docker-compose pull
第二步 {#第二步-1}
重启你的容器
docker-compose up -d --remove-orphans
第三步(可选) {#第三步可选}
删除掉旧的镜像
docker image prune
3、直接利用Portainer更新 {#3直接利用portainer更新}
有安装Portainer的同学可以直接用Portainer来更新容器镜像。
Portainer的安装可以看这里:【Docker系列】Docker可视化面板------Portainer
第一步 {#第一步-2}
登陆Portainer面板,选择容器
第二步 {#第二步-2}
选择需要更新的容器,点击Recreate
,然后点击Pull latest images
,最后点击Recreate
等待完成就ok了。