如何使用docker compose构建docker映像

如何使用docker compose构建docker映像,docker,docker-compose,Docker,Docker Compose,假设我有一个docker hub存储库my\u registry/project\u name\u service1 我想用以下存储库名称构建docker映像my\u registry/project\u name\u service1 e、 g docker-compose.yml service1: image: my_registry/project_name_service1 当我使用docker compose build service1构建图像时 存储库名称变为project

假设我有一个docker hub存储库
my\u registry/project\u name\u service1

我想用以下存储库名称构建docker映像
my\u registry/project\u name\u service1

e、 g docker-compose.yml

service1:
  image: my_registry/project_name_service1
当我使用docker compose build service1构建图像时

存储库名称变为
project\u name\u service1

其中在.env文件
COMPOSE\u project\u name=project\u name

现在

当我使用
docker compose build service1


因此,我可以使用
docker compose push service1
将图像推送到docker注册表(比如docker hub)

使用
container\u name:my\u注册表/project\u name\u服务为您的docker图像提供容器名称值


请参阅此文档:

使用
容器名称:my\u registry/project\u name\u service


请参阅此文档:

我认为您在术语方面有点混淆。 你有图像和容器。他们每个人都有名字。 图像名称是
/:
。 容器名称可以是任何内容。 拉取或推送图像时,零件将决定从哪个存储库拉取或推送到哪个存储库

在docker-compose.yml中定义服务

如果您只为服务定义“映像”,而没有构建上下文,那么将不会构建任何内容。运行“docker compose up”时将下载图像

如果定义一个构建上下文(“build”),docker compose将基于该上下文构建一个映像,然后用您在“image”中指定的名称对其进行标记

“docker COMPOSE up”使用COMPOSE_项目名称来命名容器,而不是图像

如果需要,还可以使用docker命令重新标记图像


我希望这能更清楚一点,并且您了解如何配置docker compose文件。如果您仍然有问题,请给我留言。

我认为您在条款方面有点混淆。 你有图像和容器。他们每个人都有名字。 图像名称是
/:
。 容器名称可以是任何内容。 拉取或推送图像时,零件将决定从哪个存储库拉取或推送到哪个存储库

在docker-compose.yml中定义服务

如果您只为服务定义“映像”,而没有构建上下文,那么将不会构建任何内容。运行“docker compose up”时将下载图像

如果定义一个构建上下文(“build”),docker compose将基于该上下文构建一个映像,然后用您在“image”中指定的名称对其进行标记

“docker COMPOSE up”使用COMPOSE_项目名称来命名容器,而不是图像

如果需要,还可以使用docker命令重新标记图像


我希望这能更清楚一点,并且您了解如何配置docker compose文件。如果您仍然有问题,请给我留言。

我如何使用以下格式的存储库名称构建图像:
registry\u name/repository\u name
registry\u name/some\u name
在服务中用您需要的任何值填充图像。当您构建它时,将使用该名称标记它工作的图像。我使用了两个独立的docker compose文件。docker-compose.yml和production-docker-compose.yml。因此,在每个构建中,它都使用默认的docker-compose.yml文件。很高兴听到这个消息。您应该考虑使用DOCK-COMPUTE.OURIDDE.YML来实现这一点。它让您可以轻松覆盖部分配置。如何使用以下格式的存储库名称构建映像:
registry\u name/repository\u name
registry\u name/some\u name
在服务中使用您需要的任何值填充映像。当您构建它时,将使用该名称标记它工作的图像。我使用了两个独立的docker compose文件。docker-compose.yml和production-docker-compose.yml。因此,在每个构建中,它都使用默认的docker-compose.yml文件。很高兴听到这个消息。您应该考虑使用DOCK-COMPUTE.OURIDDE.YML来实现这一点。它使您可以轻松覆盖部分配置。