Re: Nexus OSS 3.0.0 M7 - Problems with Docker Registry (proxy to DockerHub)

1,573 views
Skip to first unread message

Peter Lynch

unread,
Feb 29, 2016, 9:19:23 AM2/29/16
to Ingo Bente, Nexus Users
It looks like you are using the wrong remote url for the docker registry proxy repository.

Delete the existing proxy repository in Nexus and create a new one with a remote URL of https://registry-1.docker.io

That is the only remote URL that is considered valid for proxying the official Docker registry. 

I'm curious, what documentation implied you should use a remote URL other than https://registry-1.docker.io ? You happen to be the second user I know of who chose the wrong remote URL and this leads to very strange errors.

-Peter



On Mon, Feb 29, 2016 at 9:24 AM, Ingo Bente <ingo....@gmail.com> wrote:
Hi,

I am struggling to set up a local docker registry that proxies DockerHub.

Docker Versions
docker --version
Docker version 1.10.2, build c3959b1

docker info | grep Version
Server Version: 1.10.2
Kernel Version: 4.1.18-boot2docker

Nexus Config
I use the default Config that comes with Nexus. I added a new docker-group, where I added the default docker-hub repo. Thus, Nexus tries to use V1 of the Docker Hub registry:
Remote Storage: https://index.docker.io/v1/

Error when doing a 'docker pull my.repo.com:19443/ubuntu'
2016-02-29 12:42:08,769+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Fetching: GET https://index.docker.io/v1/v2/ubuntu/manifests/latest HTTP/1.1
2016-02-29 12:42:08,770+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.httpclient.outbound - https://index.docker.io:443/v1/v2/ubuntu/manifests/latest > GET /v1/v2/ubuntu/manifests/latest HTTP/1.1
2016-02-29 12:42:08,771+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection request: [route: {s}->https://index.docker.io:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 200]
2016-02-29 12:42:08,771+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection leased: [id: 11][route: {s}->https://index.docker.io:443][total kept alive: 0; route allocated: 1 of 20; total allocated: 1 of 200]
2016-02-29 12:42:09,415+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.httpclient.outbound - https://index.docker.io:443/v1/v2/ubuntu/manifests/latest < HTTP/1.1 404 NOT FOUND @ 645.7 ms
2016-02-29 12:42:09,415+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.repository.httpclient.FilteredHttpClient - Remote status: Remote Available 
2016-02-29 12:42:09,416+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection [id: 11][route: {s}->https://index.docker.io:443] can be kept alive for 30.0 seconds
2016-02-29 12:42:09,416+0000 DEBUG [qtp1024735925-546] USERNAME org.sonatype.nexus.internal.httpclient.SharedHttpClientConnectionManager - Connection released: [id: 11][route: {s}->https://index.docker.io:443][total kept alive: 1; route allocated: 1 of 20; total allocated: 1 of 200]
2016-02-29 12:42:09,428+0000 WARN  [qtp1024735925-546] USERNAME org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl - Could not parse error response
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: org.apache.http.conn.EofSensorInputStream@118cfc2e; line: 4, column: 2]
  at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1487) [na:na]
  at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:518) [na:na]
  at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:447) [na:na]
  at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2485) [na:na]
  at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:801) [na:na]
  at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:697) [na:na]
  at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3604) [com.fasterxml.jackson.core.jackson-databind:2.5.4]
  at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3549) [com.fasterxml.jackson.core.jackson-databind:2.5.4]
  at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2650) [com.fasterxml.jackson.core.jackson-databind:2.5.4]
  at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.execute(DockerProxyFacetImpl.java:293) [na:na]
  at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:221) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.fetch(ProxyFacetSupport.java:201) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:163) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:48) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure16.doCall(V2Handlers.groovy:242) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor245.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:267) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:50) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:267) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure1.doCall(V2Handlers.groovy:72) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure17.doCall(V2Handlers.groovy:258) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.group.GroupHandler.getFirst(GroupHandler.java:118) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.group.GroupHandler.doGet(GroupHandler.java:95) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.group.GroupHandler.handle(GroupHandler.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure16.doCall(V2Handlers.groovy:242) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor245.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:45) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure18.doCall(V2Handlers.groovy:267) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure1.doCall(V2Handlers.groovy:72) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) [!/:na]
  at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure17.doCall(V2Handlers.groovy:258) [com.sonatype.nexus.plugins.nexus-repository-docker:3.0.0.b2016011501]
  at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source) [na:na]
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [na:1.8.0_72]
  at java.lang.reflect.Method.invoke(Method.java:498) [na:1.8.0_72]
  at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-all:2.4.4]
  at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1084) [groovy-all:2.4.4]
  at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019) [groovy-all:2.4.4]
  at groovy.lang.Closure.call(Closure.java:426) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:53) [groovy-all:2.4.4]
  at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:105) [groovy-all:2.4.4]
  at com.sun.proxy.$Proxy117.handle(Unknown Source) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.proceed(Context.java:79) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Context.start(Context.java:102) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:58) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [org.sonatype.nexus.repository:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.b2016011501]
  at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [org.sonatype.nexus.plugins.nexus-repository-httpbridge:3.0.0.b2016011501]
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0]
  at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:287) [com.google.inject:4.0.0]
  at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:277) [com.google.inject:4.0.0]
  at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:182) [com.google.inject:4.0.0]
  at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71) [com.google.inject:4.0.0]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [com.google.inject:4.0.0]
  at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0]
  at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) [org.apache.shiro.web:1.2.4]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0]
  at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) [org.apache.shiro.web:1.2.4]
  at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85) [org.sonatype.nexus.security:3.0.0.b2016011501]
  at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) [org.apache.shiro.web:1.2.4]
  at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [org.apache.shiro.core:1.2.4]
  at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [org.apache.shiro.core:1.2.4]
  at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) [org.apache.shiro.core:1.2.4]
  at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) [org.apache.shiro.web:1.2.4]
  at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101) [org.sonatype.nexus.security:3.0.0.b2016011501]
  at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) [org.apache.shiro.web:1.2.4]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0]
  at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) [com.codahale.metrics.servlet:3.0.2]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0]
  at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:63) [org.sonatype.nexus.core:3.0.0.b2016011501]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0]
  at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:97) [org.sonatype.nexus.core:3.0.0.b2016011501]
  at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82) [com.google.inject:4.0.0]
  at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104) [com.google.inject:4.0.0]
  at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [com.google.inject:4.0.0]
  at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [com.google.inject:4.0.0]
  at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [com.google.inject:4.0.0]
  at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [com.google.inject:4.0.0]
  at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73) [org.sonatype.nexus.bootstrap:3.0.0.b2016011501]
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) [org.eclipse.jetty.servlet:9.3.5.v20151012]
  at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [org.eclipse.jetty.servlet:9.3.5.v20151012]
  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [org.eclipse.jetty.security:9.3.5.v20151012]
  at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [org.eclipse.jetty.servlet:9.3.5.v20151012]
  at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012]
  at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:175) [com.codahale.metrics.jetty9:3.0.2]
  at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.Server.handle(Server.java:517) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) [org.eclipse.jetty.server:9.3.5.v20151012]
  at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) [org.eclipse.jetty.io:9.3.5.v20151012]
  at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [org.eclipse.jetty.io:9.3.5.v20151012]
  at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) [org.eclipse.jetty.io:9.3.5.v20151012]
  at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) [org.eclipse.jetty.util:9.3.5.v20151012]
  at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) [org.eclipse.jetty.util:9.3.5.v20151012]
  at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) [org.eclipse.jetty.util:9.3.5.v20151012]
  at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) [org.eclipse.jetty.util:9.3.5.v20151012]
  at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]


When I change the Remote Storage to https://index.docker.io/v2/, I only get HTTP 401 responses (unauthorized). Although I have provided the correct credentials in the HTTP Authentication section.

To be honest: I am a bit lost. Any help is greatly appreciated.

Cheers
Ingo

--
You received this message because you are subscribed to the Google Groups "Nexus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nexus-users...@glists.sonatype.com.
To post to this group, send email to nexus...@glists.sonatype.com.
To view this discussion on the web visit https://groups.google.com/a/glists.sonatype.com/d/msgid/nexus-users/967a398e-ef30-4397-b756-c433188dd24a%40glists.sonatype.com.
For more options, visit https://groups.google.com/a/glists.sonatype.com/d/optout.

Peter Lynch

unread,
Feb 29, 2016, 9:22:58 AM2/29/16
to Ingo Bente, Nexus Users
I should also mention there are known issues being worked on with Docker 1.10 support and Nexus 3 M7.


You can try using Docker 1.9.1 in the meantime, that will also help.

-Peter

Ingo Bente

unread,
Feb 29, 2016, 10:05:46 AM2/29/16
to Nexus Users, ingo....@gmail.com
Hi Peter,

thanks for the help.

To be honest: I can't determine why there was the index URL configured as remote storage. This is fixed now. The documentation is correct: https://books.sonatype.com/nexus-book/3.0/reference/docker.html#docker-proxy.

I doubt that I have entered the index URL manually. But as I said, I was not able to figure out what happened there.

Still - it does not work. Here are the new logs when I do a
docker pull my.repo.com:19443/ubuntu

When I omit the HTTP Authentication section:
2016-02-29 14:48:05,948+0000 WARN  [qtp1024735925-690] USERNAME_OF_LOCAL_NEXUS org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/ubuntu/manifests/latest: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: access to the requested resource is not authorized

When I configure DockerHub credentials in the HTTP Authentication section:
2016-02-29 15:03:13,497+0000 WARN  [qtp1024735925-691] USERNAME_OF_LOCAL_NEXUS org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/ubuntu/manifests/latest: 401 - org.sonatype.nexus.repository.docker.internal.V2Exception: access to the requested resource is not authorized
2016-02-29 15:03:13,510+0000 WARN  [qtp1024735925-691] USERNAME_OF_LOCAL_NEXUS org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/ubuntu/manifests/latest: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$ManifestUnknownByTag: manifest unknown
2016-02-29 15:03:13,510+0000 WARN  [qtp1024735925-691] USERNAME_OF_LOCAL_NEXUS org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/ubuntu/manifests/latest: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$ManifestUnknownByTag: manifest unknown

Since I get a 401, and then a 404, I assume that authentication against DockerHub is working.

There are two 404s because I have both the DockerHub Proxy Repo and my hosted Docker Repo in the same Docker Group.

Cheers
Ingo

Ingo Bente

unread,
Feb 29, 2016, 10:10:23 AM2/29/16
to Nexus Users, ingo....@gmail.com

I should also mention there are known issues being worked on with Docker 1.10 support and Nexus 3 M7.


You can try using Docker 1.9.1 in the meantime, that will also help.

Thanks. The funny thing is: Although I get the same error message as mentioned in the ticket, doing a push and a pull to my private, hosted docker repo works.
Reply all
Reply to author
Forward
0 new messages