如何使用docker-compose构建docker映像

时间:2019-04-03 08:15:13

标签: docker docker-compose

假设我有一个docker hub仓库my_registry/project_name_service1

我想使用以下存储库名称my_registry/project_name_service1

构建我的Docker映像

例如docker-compose.yml

service1:
  image: my_registry/project_name_service1

当我使用docker-compose build service1构建图像时

存储库名称变为project_name_service1

在.env文件COMPOSE_PROJECT_NAME=project_name中设置前缀project_name的地方

现在

使用my_registry/project_name_service1时如何获得docker-compose build service1作为docker镜像的存储库名称

以便我可以使用docker-compose push service1将映像推送到docker注册表(例如docker hub)

2 个答案:

答案 0 :(得分:0)

使用container_name : my_registry/project_name_service

为您的docker映像提供容器名称值

请参阅此文档:https://docs.docker.com/compose/compose-file/#container_name

答案 1 :(得分:0)

我认为您对条款有些困惑。 您有图像,也有容器。他们每个人都有名字。 图像名称为/: 容器名称可以是任何名称。 拉或推图像时,该部件决定从哪个或哪个存储库拉或推图像。

在docker-compose.yml中,您定义服务。

如果仅为服务定义“映像”,但没有构建上下文,则将不会构建任何内容。当您运行“ docker-compose up”时,将下载该图像

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

COMPOSE_PROJECT_NAME由docker-compose up用来命名容器,而不是图像。

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

我希望这可以澄清更多信息,并且您了解如何配置docker-compose文件。如果您仍有问题,请给我评论。