温馨提示×

Docker镜像更新在Ubuntu上怎么弄

小樊
48
2025-11-08 21:32:39
栏目: 智能运维

在Ubuntu上更新Docker镜像的完整步骤

1. 准备工作:确认Docker安装与运行状态

在更新镜像前,需确保Ubuntu系统已安装Docker且服务正常运行。通过以下命令检查Docker版本:

docker --version

若未安装Docker,可通过以下命令安装(Ubuntu 22.04及以上版本适用):

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

启动Docker服务并设置开机自启:

sudo systemctl start docker
sudo systemctl enable docker

2. 更新Docker引擎(可选但推荐)

为确保镜像拉取与管理功能正常,建议先将Docker引擎更新至最新版本:

sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io

3. 拉取最新的Docker镜像

使用docker pull命令从Docker Hub获取镜像的最新版本。以Ubuntu镜像为例:

docker pull ubuntu:latest

若需更新特定版本(如Ubuntu 22.04),可将latest替换为目标标签:

docker pull ubuntu:22.04

执行后,Docker会自动下载镜像的最新层并保存至本地。

4. 验证镜像更新结果

通过docker images命令查看本地镜像列表,确认新镜像已成功拉取:

docker images

输出结果中,CREATED列会显示镜像的创建时间,SIZE列显示镜像大小,可通过对比更新前后的信息确认是否为新版本。

5. 更新正在运行的容器

若已有容器基于旧版镜像运行,需先停止并删除旧容器,再基于新镜像创建新容器:

  • 步骤1:列出所有容器(包括停止的):
    docker ps -a
    
  • 步骤2:停止目标容器(替换<container_id>为实际容器ID):
    docker stop <container_id>
    
  • 步骤3:删除旧容器
    docker rm <container_id>
    
  • 步骤4:基于新镜像创建新容器(以Ubuntu最新镜像为例,后台运行并开启bash交互):
    docker run -d --name my_updated_container ubuntu:latest /bin/bash
    

6. 自动更新Docker镜像(可选)

若需实现镜像自动更新,可使用第三方工具Watchtower。以下是安装与配置步骤:

  • 步骤1:创建docker-compose.yml文件
    nano docker-compose.yml
    
    添加以下内容(指定Watchtower服务及权限):
    version: '3'
    services:
      watchtower:
        image: containrrr/watchtower
        container_name: watchtower
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        restart: unless-stopped
    
  • 步骤2:部署Watchtower
    docker-compose up -d
    
    Watchtower会自动监控本地镜像,当检测到Docker Hub上有新版本时,自动拉取并更新对应容器。

注意事项

  • 更新镜像前,建议备份容器中的重要数据(可通过docker commit保存容器状态为镜像)。
  • 若镜像正在被容器使用,需先停止并删除容器,否则docker pull无法覆盖旧镜像。
  • 对于生产环境,建议使用docker tag为镜像打标签(如my-ubuntu:v1),便于版本管理与回滚。

0