docker升级容器所使用镜像

流程说明

  1. 停止容器
  2. 删除容器
  3. 更新镜像或者修改容器启动所依赖镜像版本
  4. 备份数据(非必须)
  5. 重新启动镜像

    操作示例

    1
    2
    3
    docker stop {容器名/容器id}

    容器id可以使用 docker ps 获得
1
docker rm {容器名/容器id}
1
2
3
4
5
6
7
更新镜像方法:
docker pull {镜像名称}:{容器版本,可不带,如果镜像有latest则会自动拉取,如果不存在,则需要指定tag}

删除镜像重新拉取:
docker images // 查看所有镜像,查看需要删除镜像id
docker rmi {镜像id}
docker pull {镜像名称}:{容器版本,可不带,如果镜像有latest则会自动拉取,如果不存在,则需要指定tag}
1
2
3
4
5
6
此步骤非必须,如果数据不重要或者未做 -v 的,可以进行下一步
如果启动容器是 包含-v ,并且需要有数据进行备份
1. 服务提供备份数据导出,建议使用本功能进行备份
2. 其他服务例如redis只映射了数据存储目录,不需要进行备份,再次启动容器即可

不能直接备份 -v 目录的类型, 为将所有服务启动、系统文件都进行映射的服务,例如jenkins, 可以查找对应的备份方法
1
2
3
4
使用命令再次启动容器
docker run xxxxx
或者
docker-compose up -d

注意

  1. 如果为生产环境或者对版本有强依赖的服务,不建议直接升级,而是新建一个容器
  2. 如果为一直有人使用的服务,可以在凌晨或者其他用户不使用的时间进行升级
  3. 其他注意事项需要在实际升级时进行考虑