问题标签 [docker-registry-mirror]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 我可以在 Dockerfile FROM 语句中引用环境变量吗?
我想做的是:
但是,这需要在没有互联网访问权限的隔离干净构建机器上运行,所以我需要通过本地镜像服务器(例如 Artifactory 或 Nexus 或其他类似的东西)路由它
如果 docker 映像托管在 docker hub 上(例如 FROM ubuntu),那么--registry-mirrors docker
配置选项将为我们解决它。
但是因为微软已经决定不使用 docker hub,所以注册表镜像也不起作用。
经过一番努力,我为 mcr.microsoft.com 设置了一个自定义域镜像,所以现在我可以这样做了:
这样可行。但是我们有远程工作人员,他们可能不在本地办公室 LAN 上,并且看不到我的本地镜像服务器。我现在想做的是根据环境改变它。例如
我隔离的构建机器会设置MICROSOFT_DOCKER_REPO
环境变量,其他人的机器会使用默认值mcr.microsoft.com
反正。将该行添加ENV
到 dockerfile 会导致 docker 抛出此错误:
似乎有很多引用表明 FROM 行必须是文件中的第一行,甚至在任何注释之前...如何在 FROM 语句中引用环境变量?或者,我怎样才能使注册表镜像适用于不是 docker hub 的东西?
谢谢!
docker - 运行私有 Docker 存储库时,是否可以与本地 docker 守护进程共享图像
背景
我们正在运行的local
Docker repository
机器内部运行Docker.
我试图找出:
问题
执行local repository
和守护进程,共享相同的图像,因此不会增加磁盘使用量。或者,对于每个大小为 Y(MB) 的图像 X,Xlocal repo
和 X 中的demon
X 都占用 2Y(MB)?
谢谢
编辑 1
是否有可能与force
分享local repository
它?images
daemon
docker - docker 可以使用 http 请求从私有注册表中提取图像吗?
http
当我从私有注册表中提取图像时,我想捕获请求。但它不起作用。我使用wireshark
并且只捕获 tcp 请求。
我用
启动我的私人注册表。并添加
在/etc/docker/daemon.json
利用
和
将图像推送到私有注册表。
并使用
从私有注册表中提取图像。
但是当我在registry-mirrors
. 我可以在拉取图像时捕获http
请求。
是因为我部署私有registry的方式不对?还是private registry不支持http协议?
此致。
谢谢!
docker - 是否可以在 docker daemon 配置文件中使用环境变量
背景:
我们在文件中使用registry_mirrors
&insecure_registries
选项。docker
daemon.json
我们想停止设置mirrors
硬编码的位置。
问题
可以在env variable
里面使用daemon.json
吗?因此,与其写ip
X.Y.Z.W:PORT
一个 ,不如写一个${REPO1}
。希望可以在REPO1
不重新启动的情况下更改 vardaemon
评论
解决方案必须允许在不重新启动守护程序的情况下更改repo
位置
编辑
无法在 daemon.json 1. ${VAR_NAME} 中使用以下内容
可能的解决方法
使用自定义主机名并在/etc/hosts
. ip
这允许在不重新启动守护程序的情况下更改 repo 。但它不允许改变port
或protocol
可能的解决方法 2
有些选项可以在守护程序运行时重新配置,而无需重新启动进程。我们在 Linux 中使用 SIGHUP 信号来重新加载,在 Windows 中使用全局事件,键为 Global\docker-daemon-config-$PID。可以在配置文件中修改选项,但仍会检查与提供的标志的冲突。如果存在冲突,守护进程无法重新配置自身,但它不会停止执行源
因此可以编辑registry
and do sudo systemctl reload docker
or sudo kill -SIGHUP $(pidof dockerd)
。这不会重新启动现有容器或守护进程本身
docker - docker 从远程注册表中拉两次
在最新的 Docker 中,我遇到了这样的问题。
当我拉取图像时,它会首先(快速)从我的注册表镜像中拉取它,然后是官方集线器(我猜,非常慢)。
但我以前没有这个问题。
我目前使用的 docker 版本(Docker for Windows)。
更新:今天又发生了。不确定它的配置是否有所改变,然后影响了 Docker。这些天我玩 Minikube 和 Kind。
更新:,创建一个问题moby/moby#41547),如果您遇到同样的问题,请投票。
docker - Pull-Through 配置中的 Docker-Registry 不起作用
我正在使用官方Docker-registry映像作为直通缓存。
我试图尽可能简单地启动它,以尽量减少错误来源。
仅设置了代理选项,以使缓存通过。但是,通过似乎不想在我尝试过的任何配置中工作。启动生成预期的日志输出:
现在我们尝试通过缓存拉取图像:
但是,这不会产生预期的结果。它只是说:
日志告诉我(我不明白,为什么会出现 404 错误):
我认为这条线很重要:
这是 windows-wsl 日志输出。但是,在本机 ubuntu 20.4 机器上执行(或未执行)相同的完全相同的配置。
docker - 列出在 Private Docker Registry V2 中创建日期的镜像标签
我正在尝试列出我们私有 V2 docker 注册表中的所有图像。我正在寻找一种方法,我可以在其中列出图像的标签及其创建日期。
列出图像标签的方法之一是:
curl -X GET https://DOC-REG-URL.com/v2/REPO_NAME/IMAGE_NAME/tags/list
但是,它没有列出日期信息。
有没有办法做到这一点?
提前致谢。
docker - 我们可以更改 Kubernetes 镜像注册表搜索列表吗?
例如,我的 kube 集群有一个内部 docker 注册表,托管在internal-docker-registry.io:5000
.
当 kube 集群中的 pod 拉取镜像busybox
时,我不想从 docker hub 拉取docker.io
。但相反,我希望它从internal-docker-registry.io:5000
.
请注意,我无法将图像名称更改为,internal-docker-registry.io:5000/busybox
因为我不拥有规范,而且我的集群中有太多此类第三方图像。
gitlab - 亚洲 gitlab 注册表镜像
在不在 GCE 上的管道中从 registry.gitlab.com 推送和拉取真的很困难,总是存在延迟或低带宽等问题。
是否有任何镜像或无论如何可以加速 docker 图像推送和拉取过程?