Docker Windows 本地注册表:收到意外的 HTTP 状态:500 内部服务器错误

Cam*_*ron 9 containers docker docker-registry docker-for-windows

我正在尝试将 Windows 容器的映像推送到 Windows VM 上的“本地”存储库,该存储库具有自己的 IP 地址。

因此,当我在虚拟机上创建注册表时,我可以通过转到 ipaddress:5000 来查看本地计算机上的存储库列表。

但是,当我尝试将图像推送到注册表时,它显示要推送的层,但在底部显示收到意外的 HTTP 状态:500 内部服务器错误。

当我切换到 Linux 容器时,这不是问题。我可以从注册表中推送和拉取,没有问题。

waf*_*ers 6

您需要通过allow-nondistributable-artifacts在守护程序配置 JSON 文件中设置“”选项来允许不可分发的工件。

对于 Linux:使用上述选项创建或更新 docker 守护程序 JSON 文件,位置:/etc/docker/daemon.json

对于 Windows:

  1. 右键单击系统托盘中的Docker图标并选择设置
  2. 选择守护进程选项卡
  3. 启用高级选项(如果禁用)
  4. 将选项添加allow-nondistributable-artifacts到 JSON 中,例如:

    {
        "registry-mirrors": [],
        "insecure-registries": [],
        "debug": true,
        "experimental": true,
        "allow-nondistributable-artifacts": [
            "localhost:5000"
        ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 替换localhost为您自己的服务器名称。

  6. 或者,该daemon.json文件位于C:\ProgramData\Docker\config\daemon.json

注意:如果您有任何其他设置,则仅allow-nondistributable-artifacts重要/必需。


Alo*_*man 5

对我来说,问题是我们的注册表已满。我清空了它并且它起作用了。