How to enable the Docker Remote API on Windows

2019-06-18 16:26发布

问题:

I am trying to use the Docker Remote API on a Windows 10 host machine. I am using Chrome's Postman extension to see if I can get results from the docker remote api's endpoints. Here are the endpoints that I've tried:

GET http://192.168.99.100:4243/images/json

GET http://192.168.99.100:2376/images/json

Both returned Connection to server 192.168.99.100 failed (The server is not responding)

After a few searches I found out that the Docker Remote API is not enabled by default on Windows. Most of the guides are for Ubuntu but I have found this particular one for Windows.

These are the steps that I performed on my machine

  1. docker-machine ssh
  2. cd /var/lib/boot2docker
  3. sudo vi profile
  4. Change DOCKER_HOST='H tcp://0.0.0.2376' to DOCKER_HOST='H tcp://0.0.0.2375'
  5. change DOCKER_TLS=auto to DOCKER_TLS=no
  6. export DOCKER_HOST='-H tcp://0.0.0.2375'
  7. export DOCKER_TLS_VERIFY=0
  8. env | grep DOCKER
  9. docker-machine restart
  10. docker-machine env
  11. docker-machine regenerate-certs

After performing the steps above, I did try again the endpoints on Postman but I still get the same result.

Can you perhaps give a little help if I have missed a step? Or am I on track?

Also, to answer some of my queries.

  1. Is the docker remote api port for Windows 2375 and 4243 for Linux?
  2. Is DOCKER_HOST for Windows and DOCKER_OPTS for Linux?

回答1:

Switch your docker to windows container

Got to C:\ProgramData\Docker\config in deamon.json file

add "hosts": ["tcp://0.0.0.0:2376", "npipe://"]

restart docker.

give command : docker -H tcp://0.0.0.0:2376 ps



回答2:

The Remote API is now enabled by default on Windows (see ticket here).

It is reachable at http:\\localhost:2375 indeed (tested it).