百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Windows 上 Docker 镜像与容器更新全攻略

bigegpt 2025-05-27 12:46 11 浏览

在 Windows 系统中使用 Docker 时,掌握镜像和容器的更新方法至关重要。以下是针对镜像 “
ghcr.io/open-webui/open-webui” 和容器 “open-webui” 的几种实用更新方案,助您灵活应对不同场景。

方法一:手动更新单个镜像和容器

若仅需更新单个容器,手动操作是直接有效的方式。

操作步骤:

  1. 停止并删除旧容器(如果正在运行):
docker stop open-webui
docker rm open-webui
  1. 拉取最新镜像
docker pull ghcr.io/open-webui/open-webui:latest

这会从镜像仓库中拉取最新的 open-webui 镜像。

  1. 停止并删除旧容器
docker stop open-webui
docker rm open-webui

停止并删除旧的 open-webui 容器。

  1. 使用新镜像创建并启动新容器
docker run -d --name open-webui -p 3000:8080 -v C:/data/open-webui:/app/data ghcr.io/open-webui/open-webui:latest
  1. 使用最新镜像创建并启动新的 open-webui 容器。
  2. -d:后台运行容器。
  3. -p:映射端口(示例中将宿主机 8080 映射到容器 8080)。
  4. -v:挂载数据卷,确保数据持久化(如需持久化数据,必须添加此参数)。

注意事项:

  • 如果未使用 -v 挂载数据,容器删除后数据会丢失。
  • 需要记住原始容器的启动命令(如端口、挂载路径等)。
  1. 验证更新
docker ps

查看新容器是否正常运行。

方法二:使用 Docker Compose 更新

当管理多容器项目时,Docker Compose 能提供便捷的更新体验。

编写 docker-compose.yml 文件:内容如下,指定镜像、端口映射等关键信息。,内容如下:

 version: '3'
 services:
   open-webui:
     image: ghcr.io/open-webui/open-webui:latest
     container_name: open-webui
     ports:
       - "8080:8080"
     volumes:
       - ./data:/app/data
  • image:指定镜像地址和标签(:latest 表示最新版本)。
  • volumes:挂载本地目录到容器内,确保数据持久化。
  • 可以根据自己的情况编写更多的更新镜像信息到 .yml 文件里面,达到批量更新的目的。

操作步骤:

  1. 拉取最新镜像
docker-compose pull

这会拉取 docker-compose.yml 文件中定义的所有服务的最新镜像。

  • pull:拉取最新镜像。
  1. 更新并重启服务
docker-compose up -d

这会根据最新的镜像重新创建并启动容器。

  • up -d:重建容器并启动。
  1. 验证服务状态
docker-compose ps

查看服务是否正常运行。

注意事项:

  • 使用 docker-compose 可简化多容器管理。
  • 修改 docker-compose.yml 后,需重新运行 docker-compose up -d。

方法三:使用 Watchtower 自动更新

Watchtower 可实现容器的自动更新,可以定期检查并更新镜像,省去人工干预。

操作步骤:

  1. 安装 Watchtower
docker pull containrrr/watchtower
  1. 运行 Watchtower
docker run -d \
 --name watchtower \
 -v /var/run/docker.sock:/var/run/docker.sock \
 containrrr/watchtower open-webui

这会启动 Watchtower,它会自动检测 open-webui 容器的镜像更新,并在后台自动更新。

  • --run-once:仅检查并更新一次(可省略以持续监控)。
  • open-webui:指定要监控的容器名。
  1. 手动触发更新(可选)

如果需要手动触发更新,可以运行以下命令:

docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock \
 ghcr.io/containrrr/watchtower --run-once open-webui
  1. 验证更新

Watchtower 会自动拉取最新镜像并重启容器。可通过以下命令查看日志:

docker logs watchtower

注意事项:

  • Watchtower 会自动处理容器的重启和镜像更新,无需手动操作。
  • 若需全局监控所有容器,可省略 --run-once open-webui 参数。
  • 确保 Watchtower 有权限访问 Docker 的套接字文件(/var/run/docker.sock)。

方法四:使用 CI/CD 工具自动化更新

借助 Jenkins、GitLab CI 或 GitHub Actions 等 CI/CD 工具,可以编写脚本实现自动化更新镜像。

示例 CI/CD 脚本(GitLab CI):

 stages:
   - update
 
 update:
   stage: update
   script:
     - docker pull ghcr.io/open-webui/open-webui:latest
     - docker stop open-webui
     - docker rm open-webui
     - docker run -d --name open-webui ghcr.io/open-webui/open-webui:latest

这个脚本会在触发时自动拉取最新镜像并更新容器。

方法五:可视化工具更新

对于不熟悉命令行的用户,可视化工具是友好之选。

工具一:使用 DPanel 可视化工具更新

步骤:

  1. 部署 DPanel 容器
docker run -d \
 --name dpanel \
 -p 8807:8080 \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v dpanel:/dpanel \
 ghcr.io/dpanel/dpanel:lite
  1. 通过 Web 界面操作:
  • 访问 http://localhost:8807。
  • 在 DPanel 界面中找到 open-webui 容器,点击“升级”按钮。
  • 选择镜像 ghcr.io/open-webui/open-webui:latest,确认更新。

注意事项:

  • DPanel 提供图形化操作,适合不熟悉命令行的用户。
  • 需要提前安装 DPanel 容器。

工具二:使用Portainer更新

Portainer是一个可视化的Docker管理工具,可以帮助你更方便地管理和更新容器。

  1. 安装Portainer 如果还没有安装Portainer,可以通过以下命令快速部署:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
  1. 登录Portainer界面 打开浏览器访问https://localhost:9443,然后使用提供的界面找到你要更新的服务或容器。
  2. 更新服务/容器 在Portainer中,你可以查看所有运行中的容器和服务,并直接点击“Recreate”按钮来基于最新的镜像重建容器。

总结对比

方法

优点

缺点

手动更新

简单直接,适用于单容器

需记住命令,操作繁琐

Docker Compose

适合多容器项目,配置集中,操作便捷且能保持服务一致性

需维护 docker-compose.yml

Watchtower

自动更新适合需要自动化的场景,无需人工干预

需额外部署容器

CI/CD 工具

自动化更新,融入持续交付流程

需编写脚本

DPanel / Portainer

图形化操作,新手友好

依赖第三方工具


附加建议

  1. 数据持久化
  • 所有方法均需通过 -v 或 docker-compose.yml 挂载数据卷,避免更新后数据丢失。
  • 示例:
docker volume create open-webui-data
docker run -d \
 --name open-webui \
 -v open-webui-data:/app/data \
 ghcr.io/open-webui/open-webui:latest
  1. 备份镜像
  • 更新前可通过
docker save
  • 备份旧镜像:
docker save ghcr.io/open-webui/open-webui > open-webui-backup.tar
  1. 验证更新
  • 更新后检查容器日志和状态:
docker logs open-webui
docker ps -a

大家通过以上方法,您可以灵活选择适合需求的更新策略。

注意:无论采用哪种方法,请确保在更新前备份重要数据,尤其是当你对某些容器进行了自定义配置时。此外,在生产环境中进行任何更改之前,最好在一个测试环境中先行试验。

相关推荐

php-fpm的配置和优化

目录概述php-fpm配置php-fpm进程优化配置慢日志查询配置php7进阶到架构师相关阅读概述这是关于php进阶到架构之php7核心技术与实战学习的系列课程:php-fpm的配置和优化学习目标:理...

成功安装 Magento2.4.3最新版教程「技术干货」

外贸独立站设计公司xingbell.com经过多次的反复实验,最新版的magento2.4.3在oneinstack的环境下的详细安装教程如下:一.vps系统:LinuxCentOS7.7.19...

十分钟让你学会LNMP架构负载均衡

业务架构、应用架构、数据架构和技术架构一、几个基本概念1、pv值pv值(pageviews):页面的浏览量概念:一个网站的所有页面,在一天内,被浏览的总次数。(大型网站通常是上千万的级别)2、u...

php从远程URL获取(mp4 mp3)音视频的流媒体数据

/***从远程URL中获取媒体(如mp4mp3)的内容*@parammixed$file_url*@parammixed$media_type...

Zabbix5.0安装部署

全盘展示运行状态,减轻运维人员的重复性工作量,提高系统排错速度,加速运维知识学习积累。1.png1、环境安装关闭SELinux并重启系统2.png安装httpd、mariadb、php运行yum-...

php 常见配置详解

以下是PHP常见的配置项及其含义:error_reporting:设置错误报告级别,可以控制PHP显示哪些错误。例如,设置为E_ALL将显示所有错误,而设置为0将禁止显示任何错误。displa...

实践分享|基于基石智算 DeepSeek API + WordPress 插件自动生成访客回复

基石智算举办的DeepSeek案例大赛汇集了不少基于CoresHubDeepSeekAPI服务或模型部署服务的精彩实践。本次我们将分享个人实践:通过DeepSeekAPI+Word...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

MySQL自我保护参数

#头条创作挑战赛#之前(MySQL自我保护工具--pt-kill)提到用pt-kill工具来kill相关的会话,来达到保护数据库的目的,本文再通过修改数据库参数的方式达到阻断长时间运行的SQL的目...

Python闭包深度解析:掌握数据封装的高级技巧

闭包作为Python高级编程特性之一,为开发者提供了一种优雅的方式来实现数据封装和状态保持。这一概念源于函数式编程理论,在现代Python开发中发挥着重要作用。理解和掌握闭包的使用不仅能够提升代码的表...

Java服务网格故障注入与熔断实战

在分布式系统的高可用性挑战中,服务网格的故障注入与熔断机制是检验系统韧性的终极试金石。以下是10道逐步升级的"地狱关卡",每个关卡都对应真实生产环境中可能遇到的致命场景,并附具体场景示...

MySQL数据库性能优化全攻略:程序员必知的七大核心策略

作为程序员,我们每天都要与数据库打交道。当系统用户量突破百万级时,数据库往往成为性能瓶颈的首要怀疑对象。本文将深入探讨MySQL优化的七大核心策略,并提供可直接落地的优化方案,助您构建高效稳定的数据库...

如何在 Windows 11 上使用单个命令安装 XAMPP

XAMPP是一种广泛使用的软件,用于在Windows操作系统上快速运行LAMP服务器包,包括Windows11。尽管LAMP通常用于Linux系统,但XAMPP并不使用Li...

uTorrent怎样将bt种子转换为磁力

如何用uTorrent把BT种子转为磁力链接?以下方法希望能帮到你。1、在uTorrent窗口里,点击工具栏的按钮,所示。2、在打开窗口里,选取要转为磁力的种子文件,然后点击打开按钮,参照图示操作...

支持向量机SVM 分类和回归的实例

支持向量机(SupportVectorMachine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他...