Hi Andrea, Below is my code I believe as minimal to run jclouds-docker.
ComputeServiceContext context = ContextBuilder.newBuilder("docker") .credentials("root", "default") .endpoint("http://172.31.11.23:4243") .modules(ImmutableSet.<Module> of(new SLF4JLoggingModule(), new SshjSshClientModule())) .buildView(ComputeServiceContext.class); TemplateBuilder b = context.getComputeService().templateBuilder(); b.imageId("a9de1b8ac7fbf0629c173bc9a71609ef46d0fc533ef089c5a42c8b36eb15194a"); Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup("container", 1, b.imageId("a9de1b8ac7fbf0629c173bc9a71609ef46d0fc533ef089c5a42c8b36eb15194a").build()); ====== I have been able to curl and get the response from 172.31.11.23:4243 manually. But when I run this program, I got the java error like a json parsing error. Can you help ? Exception in thread "main" java.lang.IllegalStateException: Expected STRING but was BEGIN_ARRAY at com.google.gson.internal.bind.JsonTreeReader.nextString(JsonTreeReader.java:154) at com.google.gson.internal.bind.TypeAdapters$13.read(TypeAdapters.java:358) at com.google.gson.internal.bind.TypeAdapters$13.read(TypeAdapters.java:346) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) at com.google.gson.Gson.fromJson(Gson.java:803) at com.google.gson.Gson.fromJson(Gson.java:868) at com.google.gson.Gson.fromJson(Gson.java:841) at org.jclouds.docker.config.DockerParserModule$ContainerTypeAdapter.deserialize(DockerParserModule.java:58) at org.jclouds.docker.config.DockerParserModule$ContainerTypeAdapter.deserialize(DockerParserModule.java:51) at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58) at com.google.gson.Gson.fromJson(Gson.java:803) at com.google.gson.Gson.fromJson(Gson.java:768) at com.google.gson.Gson.fromJson(Gson.java:717) at org.jclouds.json.internal.GsonWrapper.fromJson(GsonWrapper.java:42) at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:82) at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:76) at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:62) at org.jclouds.http.functions.ParseJson.apply(ParseJson.java:42) at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:91) at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74) at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45) at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87) at com.sun.proxy.$Proxy50.inspectContainer(Unknown Source) at org.jclouds.docker.compute.strategy.DockerComputeServiceAdapter.listNodes(DockerComputeServiceAdapter.java:187) at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listDetailsOnNodesMatching(AdaptingComputeServiceStrategies.java:122) at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listNodes(AdaptingComputeServiceStrategies.java:112) at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.getNextNames(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:192) at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:121) at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:210) at docker.main(docker.java:104) ==== Thanks, -Liang On Fri, Aug 8, 2014 at 12:06 AM, Andrea Turli <andrea.tu...@gmail.com> wrote: > Yes Liang, > > try with > > ContextBuilder builder = ContextBuilder.newBuilder(provider) > .credentials(identity, > credential) > .endpoint(" > http://172.22.22.22:2375") > .modules(modules) > .overrides(properties); > > assuming that you have enabled the docker remote API over tcp > > You can find a lot on the internet about that, but as an example, if your > docker engine runs on Ubuntu you can update DOCKER_OPTS in > /etc/init/docker.conf: > > DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock' > > and then > > service docker restart > > HTH, > Andrea > > > > > On Fri, Aug 8, 2014 at 2:25 AM, liang cheng <liang.ch...@gmail.com> wrote: > > > [github on Bcc] > > > > Hi Andrea, > > > > Actually what I meant is how to specify the "Linux host" in the diagram > of > > this link <http://jclouds.apache.org/guides/docker/>.For example, I'm > > working on workstation (172.11.11.11) and want to create docker container > > at a LInux host (172.22.22.22). How do I pass "172.22.22.22" to > > jclouds-docker API ? Using "endpoint" ? Please advise it. > > > > Thanks, > > -Liang > > > > > > On Wed, Aug 6, 2014 at 11:33 PM, Andrea Turli <notificati...@github.com> > > wrote: > > > > > By default, Docker assigns a NAT'ed IP to the created container which > is > > > parsed in the Container domain class > > > > > > If you need more advanced networking configuration you can try > > > http://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/ > or > > > https://docs.docker.com/articles/networking/ but those are untested > > > solutions out of the scope of jclouds, at the moment. > > > > > > — > > > Reply to this email directly or view it on GitHub > > > < > > > https://github.com/jclouds/jclouds-labs/commit/9b124ee9f12e0392b6d2f083308297bfcca8ea79#commitcomment-7297454 > > > > > > . > > > > > >