一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何在 Docker Compose 中使用 image 指令指定预构建镜像教程

时间:2026-07-12 08:58:52 编辑:袖梨 来源:一聚教程网

image指令用于指定服务使用的镜像名称和标签,如nginx:1.25或myapp:dev;单独使用时不构建,仅拉取运行;与build联用时则为构建结果打标签。

在 Docker Compose 中,直接使用 image 指令指定一个已存在的镜像(如本地构建好的或从 Docker Hub 拉取的)是最简单、最常用的方式。它不触发构建过程,只负责拉取并运行该镜像。

image 指令的基本用法

image 字段用于声明服务要使用的镜像名称和标签,格式为 repository/name:tag。如果不写标签,默认为 latest

  • 使用官方镜像:image: nginx:1.25
  • 使用本地已构建的镜像:image: myapp:dev(前提是已通过 docker build -t myapp:dev . 构建过)
  • 使用私有仓库镜像:image: registry.example.com/team/app:v2.1

配合 build 指令时 image 的作用

当同时存在 buildimage 时,image 定义的是构建完成后要打上的镜像名和标签。Docker Compose 构建完会自动 docker tag 并保存为该名称。

  • 示例:
    web:  build: ./web  image: my-web-app:prod
  • 执行 docker-compose up --build 后,会基于 ./web 目录构建,并将结果标记为 my-web-app:prod
  • 下次再运行 docker-compose up(不加 --build),就会直接使用这个已命名的镜像,跳过构建

验证镜像是否可用

运行前建议手动检查镜像是否存在,避免启动失败:

  • 列出本地镜像:docker images | grep myapp
  • 如果没看到,说明还没构建或拉取,需先执行 docker build -t myapp:latest .docker pull nginx:alpine
  • Compose 启动时若找不到镜像,会尝试拉取远程同名镜像;若拉取失败且无本地镜像,容器就无法启动

常见误区提醒

注意不要混淆 imagebuild 的职责:

  • image 单独存在 → 只拉取/运行,不构建
  • build 单独存在 → 自动使用默认镜像名(如 project_service),不显式打标签
  • build + image → 构建后打指定标签,利于复用和部署识别
  • 不要写 image: .image: ./Dockerfile —— 这是无效写法,image 必须是合法镜像名

热门栏目