如何将docker/docker compose配置为默认使用Nexus而不是docker.io?

如何将docker/docker compose配置为默认使用Nexus而不是docker.io?,docker,docker-compose,docker-desktop,testcontainers,Docker,Docker Compose,Docker Desktop,Testcontainers,我正在尝试使用TestContainers来运行JUnit测试。 但是,我得到一个InternalServerErrorException:Status 500:{“message”:“Get”https://registry-1.docker.io/v2/: 禁止“}错误 请注意,我在一个安全的网络上 我可以通过在命令行上执行docker pull testcontainers/ryuk来复制这一点 $ docker pull testcontainers/ryuk Using default

我正在尝试使用TestContainers来运行JUnit测试。 但是,我得到一个
InternalServerErrorException:Status 500:{“message”:“Get”https://registry-1.docker.io/v2/: 禁止“}
错误

请注意,我在一个安全的网络上

我可以通过在命令行上执行
docker pull testcontainers/ryuk
来复制这一点

$ docker pull testcontainers/ryuk
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: Forbidden
但是,我需要它从我们的nexus服务中提取:
https://nexus.company.com/18443
。 在docker compose文件中,我已经使用了正确的nexus映像路径。(通过手动启动docker compose进行验证。但是TestContainers也会引入docker compose文件之外的其他图像。正是这些图像导致了失败

我很高兴Docker Desktop或TestContainers的配置更改能为我解决这个问题


注意:我已经尝试将nexus的主机URL添加到仪表板上的Docker Engine JSON配置中,在执行
Docker pull

时,不会更改所产生的错误。该过程描述如下:

将以下内容添加到Docker守护程序配置中:

{
“注册表镜像”:[“https://nexus.company.com:18443"]
}

请确保重新启动守护进程以应用更改。

此过程在上进行了描述:

将以下内容添加到Docker守护程序配置中:

{
“注册表镜像”:[“https://nexus.company.com:18443"]
}

确保重新启动守护程序以应用更改。

因为版本
1.15.1
Testcontainers允许自动向所有docker映像添加前缀。如果您的私有注册表配置为docker hub镜像,此功能将有助于解决上述问题

引自:

然后,您可以配置Testcontainers,将前缀registry.mycompany.com/mirror/应用于它试图从Docker Hub提取的每个映像。这可以通过以下两种方式之一完成:

  • 设置环境变量TESTCONTAINERS\u HUB\u IMAGE\u NAME\u PREFIX=registry.mycompany.com/mirror/
  • 通过配置文件,在以下任一位置设置hub.image.name.prefix:
    • 用户主目录中的~/.testcontainers.properties文件,或
    • 类路径上名为testcontainers.properties的文件
基本上为docker compose文件中的图像设置相同的前缀


如果由于某种原因您一直使用旧版本,不推荐的解决方案是只覆盖
ryuk.container.image
属性。请阅读相关内容。

,因为版本
1.15.1
Testcontainers允许自动将前缀附加到所有docker映像。如果您的私有注册表配置为docker hub m此功能应有助于解决上述问题

引自:

然后,您可以配置Testcontainers,将前缀registry.mycompany.com/mirror/应用于它试图从Docker Hub提取的每个映像。这可以通过以下两种方式之一完成:

  • 设置环境变量TESTCONTAINERS\u HUB\u IMAGE\u NAME\u PREFIX=registry.mycompany.com/mirror/
  • 通过配置文件,在以下任一位置设置hub.image.name.prefix:
    • 用户主目录中的~/.testcontainers.properties文件,或
    • 类路径上名为testcontainers.properties的文件
基本上为docker compose文件中的图像设置相同的前缀


如果出于某种原因,您一直使用旧版本,不推荐的解决方案是只覆盖
ryuk.container.image
属性。了解它。

这对您有帮助吗?不,这是关于登录。我没有登录docker.io上的帐户。我正在尝试使用完全不同的repo。您提到您正在使用secur我猜是防火墙阻止你访问docker.io上的资源,而docker.io上的“附加映像”你提到的是从中提取的。没错@JR。这对你有帮助吗?不,这是关于登录。我没有登录docker.io上的帐户。我正在尝试使用完全不同的回购。你提到你在一个安全的网络上。我猜防火墙阻止你访问docker.io上的资源,而docker.io是“其他图像"你提到的是从中提取的。这是正确的@JR。我已经尝试过了,并重新启动了Docker桌面。这没有任何区别。我尝试过了,并重新启动了Docker桌面。这没有任何区别。谢谢,这让我通过了那个问题,进入了更新更好的问题:PThanks,这让我通过了那个问题,进入了更新更好的issues:P