假设我有一个docker hub仓库my_registry/project_name_service1
。
我想使用以下存储库名称my_registry/project_name_service1
例如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)
答案 0 :(得分:0)
使用container_name : my_registry/project_name_service
请参阅此文档: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文件。如果您仍有问题,请给我评论。