Jul*_*rra 15 docker dockerfile docker-registry docker-trusted-registry
有没有办法在私有注册表中提取图像docker build而不是docker hub?
我部署了一个私有注册表,我希望能够避免ip:port在Dockerfile的FROM指令中命名其特定的.我期待一个docker build选项或docker环境变量来更改默认注册表.
cpu*_*y83 16
映像名称应包含注册表主机的FQDN.所以,如果你想要,FROM <some private image>你必须指定它FROM registry_host:5000/foo/bar
将来这不是一个要求,但不幸的是现在它是.
Mat*_*t L 14
我在 2019 年遇到了同样的问题。我使用参数 (ARG) 解决了这个问题。
https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
参数允许您设置可在 FROM 行中使用的可选参数(使用默认值)。
Dockerfile-项目-开发
ARG REPO_LOCATION=privaterepo.company.net/
ARG BASE_VERSION=latest
FROM ${REPO_LOCATION}project/base:${BASE_VERSION}
...
Run Code Online (Sandbox Code Playgroud)
对于我的用例,我通常想从私有存储库中提取,但如果我正在处理 Dockerfiles,我可能希望能够从我自己机器上的图像构建,而不必修改我的 Dockerfile 中的 FROM 行. 要告诉 Docker 在构建时在我的本地机器上搜索图像,我会这样做:
docker build -t project/dev:latest -f ./Dockerfile-project-dev --build-arg REPO_LOCATION='' .
Run Code Online (Sandbox Code Playgroud)
码头工人通常希望确保如果你运行,docker pull foo/bar你将获得相同的东西(即foo/bar来自Docker Hub 的图像),无论你的本地环境如何.
这意味着没有可用的选项让Docker在没有显式主机名/端口的情况下使用其他任何东西.
| 归档时间: |
|
| 查看次数: |
13696 次 |
| 最近记录: |