我刚刚创建了一个新的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