Search code examples
dockerdocker-machinenetflix

Run netflixoss Docker on Windows 8.1


I have installed docker-toolbox v1.12 locally on a Windows 8.1 laptop. As suggested here I have run docker run -d --name exhibitor netflixoss/exhibitor:1.5.2. This has pulled all the images in my Docker VM "home". docker inspect <<container-id>> (container id obtained from docker ps command) reveals my Network Settings as below.

"NetworkSettings": {
            "Bridge": "",
            "SandboxID": "c1a16c1704f76b2e2a35b2ae6a18780aaedac078cceb005b419cafb405b1e3b2",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "2181/tcp": null,
                "2888/tcp": null,
                "3888/tcp": null,
                "8080/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/c1a16c1704f7",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "3e19d6c6eeb2e7c9dbb9b357ac4ecc9515bdf391df6688f17420bb9443ce3d22",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "85b5af82cb891978b6d3272f622c747fa68546d0401a24e85c9d42f7644ea2d4",
                    "EndpointID": "3e19d6c6eeb2e7c9dbb9b357ac4ecc9515bdf391df6688f17420bb9443ce3d22",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02"
                }
            }
        }

I'm trying to invoke the running Docker container from Windows host using "http://172.17.0.2:8080/exhibitor/v1/ui/index.html". But that doesn't seem to work. docker ps suggests the container is up

CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS
     NAMES
1a849df14320        netflixoss/exhibitor:1.5.2   "java -jar exhibitor-"   About an hour ago   Up About an hour    2181/tcp, 2888/tcp, 3888/tcp, 8080/t
cp   exhibitor

Also I can connect to the container using docker attach 1a849df14320 and see the following log entries time-to-time

INFO  com.netflix.exhibitor.core.activity.ActivityLog  Cleanup task completed [pool-2-thread-93]

I'm a complete newbie with Docker.


Solution

  • You have not exposed the port to the host.

    docker ps -a should give output similar to:

    0.0.0.0:1234->9876/tcp, 0.0.0.0:4321->7890/tcp
    

    This shows port 1234 on the host is mapped to 9876 in the container.

    Your docker ps output has no port mappings. You should do:

    docker run .......... -p 8080:8080
    

    You can always use the -P flag too (if you expose the port in the Dockerfile) but the above solution is the quickest.