You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Docker构建与运行合并为单命令,简化镜像更新重启流程?

一键完成Docker镜像重建与容器更新重启的方案

方案一:用Shell脚本封装操作

直接把四步命令整合成可执行脚本,复用性强,适合不想依赖Docker Compose的场景。

  1. 在项目根目录创建update-container.sh脚本,内容如下:
#!/bin/bash
# 自定义你的镜像名和容器名
IMAGE="my-custom-image"
CONTAINER="my-running-container"

# 1. 重新构建镜像
docker build -t $IMAGE .

# 2. 停止容器(忽略容器不存在的错误)
docker stop $CONTAINER 2>/dev/null

# 3. 删除容器(忽略容器不存在的错误)
docker rm $CONTAINER 2>/dev/null

# 4. 启动新容器,可添加需要的run参数(比如-p端口映射、-v数据卷挂载等)
docker run -d --name $CONTAINER $IMAGE
  1. 给脚本添加执行权限:
chmod +x update-container.sh

之后每次修改Dockerfile后,只需运行:

./update-container.sh

脚本里的2>/dev/null是为了避免容器未运行时抛出错误,让执行过程更顺畅。

方案二:用Docker Compose(推荐)

哪怕只有单个服务,Docker Compose也能帮你一键搞定构建+更新容器,比脚本更灵活,还能统一管理复杂配置。

  1. 在项目根目录创建docker-compose.yml:
version: '3.8'
services:
  app:
    build: .
    container_name: my-app-container
    # 按需添加容器运行参数,比如端口映射、数据卷挂载
    ports:
      - "8080:80"
    volumes:
      - ./data:/app/data
  1. 每次更新Dockerfile后,运行以下命令即可:
docker-compose up --build -d app
  • --build:强制重新构建镜像
  • -d:后台运行容器
  • app:指定要更新的服务名(对应yml里的service名称)

Compose会自动完成:重新构建镜像、停止旧容器、删除旧容器、启动新容器,还会自动清理无用的中间镜像,比脚本更省心。

额外小技巧

如果想自动清理未被使用的旧镜像,可以在Shell脚本末尾加一行:

docker image prune -f

或者用Docker Compose时,先执行docker-compose down --rmi all再运行up --build,不过前者更轻量。

内容的提问来源于stack exchange,提问作者Rui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:21:02