docker - Docker Windows 本地注册表:收到意外的 HTTP 状态:500 内部服务器错误
问题描述
我正在尝试将 Windows 容器的映像推送到 Windows VM 上的“本地”存储库,该存储库具有自己的 IP 地址。
因此,当我在 VM 上创建注册表时,我可以通过转到 ipaddress:5000 来查看本地计算机上的存储库列表。
但是,当我尝试将图像推送到注册表时,它会显示要推送的层,但在底部它说收到了意外的 HTTP 状态:500 内部服务器错误。
当我切换到 Linux 容器时,这不是问题。我可以从注册表中推送和拉取没问题。
解决方案
您需要通过allow-nondistributable-artifacts
在守护程序配置 JSON 文件中设置“”选项来允许不可分发的工件。
对于 Linux:使用上述选项创建或更新 docker daemon JSON 文件/etc/docker/daemon.json
对于 Windows:
- 右键单击系统托盘中的Docker图标并选择设置
- 选择守护程序选项卡
- 启用高级选项(如果禁用)
将选项添加
allow-nondistributable-artifacts
到 JSON Like 中:{ "registry-mirrors": [], "insecure-registries": [], "debug": true, "experimental": true, "allow-nondistributable-artifacts": [ "localhost:5000" ] }
替换
localhost
为您自己的服务器名称。- 或者,该
daemon.json
文件位于C:\ProgramData\Docker\config\daemon.json
注意:如果您有任何其他设置,“仅”allow-nondistributable-artifacts
是重要的/必需的。
推荐阅读
- angular - 将 Swagger 编辑器添加到 Angular 项目
- c# - 如何修复 iis 上的 asp core mvc 部署
- scikit-learn - xgboost“适合”功能是否允许继续训练?
- regex - 匹配由包含模式的换行符包围的文本块
- excel - 我的 if 语句是健壮的。我怎样才能使它更紧凑?
- android - Facebook SDK 政策问题 - Android
- sqlite - 如何将查询结果从数据库管理器导出到 SQLite 中的 CVS 文件?
- java - 由于位图和空指针,应用程序在图像上传时崩溃
- mysql - Django MySQL REPEATABLE READ“数据丢失”
- c# - 如何检测设备类型(桌面/移动/..)。并显示登录用户/客户的相应模式