首页 > 解决方案 > Docker - 将多个图像发送到注册表

问题描述

我有一个有 2 个 Dockerfile 的项目;一个用于前端,另一个用于后端。
但是在我的本地机器中,我创建了一个docker-compose.yml文件,该文件将在各自的文件夹中构建各自的 Dockerfile,并按规定的顺序运行它们

当前结构

.
+-- api
|   +-- Dockerfile
|   +-- ...
+-- frontend
|   +-- Dockerfile
|   +-- ...
+-- docker-compose.yml

因此,本地堆栈是通过docker-compose up.
我现在计划将整个堆栈放入一个私有注册表中。

获取图像的最佳方法是什么,使开发和 CI/CD 例程变得容易?

  1. 每个Dockerfile图像可以单独推送并拉入新服务器吗?或者
  2. 有没有一种方法可以将不同的图像组合成一个并使用?

或者让我知道部署它的最有效方法。

标签: dockerdocker-composedockerfilecontinuous-deploymentdocker-registry

解决方案


要推送由您的 compose 构建的多个图像,您可以使用docker-compose push命令。请记住,撰写中的图像名称应采用适当的格式。您的 docker compose 可能如下所示:

version: '3'
services:
  sv1:
    build: .
    image: localhost:4000/imgename:tag  # for local registry

  sv2:
    build: .
    image: hubusername/imagename:tag  # for DockerHub registry

使用此命令,您可以一次推送所有图像,但您也可以指定要推送的图像的服务名称。然后,您可以从您的存储库中单独下载这些图像。


推荐阅读