我按照本指南设置了Docker v2注册表,充当Docker Hub映像的本地代理缓存.我的Docker守护程序配置了指向同一注册表实例的两个--insecure-registry和--registry-mirror选项.
拉动图像时,通过将它们缓存到本地商店,它可以正常工作.
问题是当我尝试将图像推送到这样的本地私有注册表时,我得到一个奇怪的UNSUPPORTED错误.注册表日志说:
time="2015-11-09T13:20:22Z" level=error msg="response completed with error" err.code=UNSUPPORTED err.message="The operation is unsupported." go.version=go1.4.3 http.request.host="my.registry.io:5000" http.request.id=b1faccb3-f592-4790-bbba-00ebb3a3bfc1 http.request.method=POST http.request.remoteaddr="192.168.0.4:57608" http.request.uri="/v2/mygroup/myimage/blobs/uploads/" http.request.useragent="docker/1.9.0 go/go1.4.2 git-commit/76d6bc9 kernel/3.16.0-4-amd64 os/linux arch/amd64" http.response.contenttype="application/json; charset=utf-8" http.response.duration=2.035918ms http.response.status=405 http.response.written=78 instance.id=79970ec3-c38e-4ebf-9e83-c3890668b122 vars.name="mygroup/myimage" version=v2.2.0
Run Code Online (Sandbox Code Playgroud)
如果我在注册表上禁用代理设置,则推送工作正常.我是否遗漏了配置上的内容,或者只是私有注册表不能同时充当代理缓存?
我需要打印序列化Java对象的内容(例如,从缓存中检索的java.io.Serializable POJO),而不知道它的类是先验的.
更具体一点,我不需要使用经典的ObjectInputStream来实例化一个新对象,我只需要获得对象的简单的人类可读表示(最好是JSON)而不需要在类路径中加载它的类.
换句话说,我需要将byte [](原始序列化对象)转换为JSON字符串,而无需重新实现ObjectInputStream.