docker 撰写文件中的美元符号是什么?



我刚刚创建了一个新的dotnet核心项目,并添加了Docker支持以及类似于此MSDN教程描述的业务流程支持。

docker 撰写文件如下所示。这里 generator31 是我创建的 Visual Studio 项目的名称。

version: '3.4'
services:
generator31:
image: ${DOCKER_REGISTRY-}generator31
build:
context: .
dockerfile: generator31/Dockerfile

这是什么DOCKER_REGISTRY这里。还有$符号在那里做什么。我在哪里可以获得有关此的更多信息。

当我运行命令时

docker-compose up 

最终生成的图像是 generator31:latest

有趣的是,当我从 docker 文件中删除 ${DOCKER_REGISTRY-} 时

,如下所示,
services:
generator31:
image: generator31
.....Rest omitted for brivity

结果完全相同。最终图像再次是 generator31:latest。

所以我不清楚DOCKER_REGISTRY在这里做什么。

DOCKER_REGISTRY是推送或拉取映像时对Docker寄存器的引用。

要访问 docker-compose 中的环境变量,它使用$符号。

在映像名称前面加上 Docker Hub 用户名(例如,dockerhubusername/hellodockertools(,如果将图像推送到 注册表。或者,更改映像名称以包含私有映像名称 注册表 URL(例如,privateregistry.domain.com/hellodockertools( 取决于 配置。

visual-studio-tools-for-docker

所以我不清楚DOCKER_REGISTRY在这里做什么。

在构建过程中,它不会显示为,因为它只显示 docker 映像名称,默认情况下,docker 在其默认 docker 注册表之前不会显示注册表 URL。

要检查这一点DOCKER_REGISTRY更改值,然后运行以下命令,以便privateregistry.domain.com/hellodockertools

docker images

DOCKER_REGISTRY只是一个定义目标的环境变量 码头工人注册表。也就是说,您想将图像放在哪里。它 默认为空字符串,但您可以将其设置为您的 dockerhub 注册表,以防您想将映像推送到那里。

docker-compose-in-visual-studio-explained-explain

例如,你想要推送映像 aws ECR 或 azure,然后覆盖DOCKER_REGISTRY将帮助您将映像推送到注册表,而无需更改 docker-compose 中的任何内容。

export DOCKER_REGISTRY=aws.ecr.myimage/test && docker-compose push

最新更新