如何在 Windows 容器上启用 Docker RestAPI?
How do I enable the Docker RestAPI on Windows Containers?
我使用 this official guide 在 Windows 上安装了 Docker 个容器。一切看起来都不错,我现在可以在 Windows 容器上 运行 IIS。
但是,我在任何地方都看不到它,也不知道如何 "Enable Rest API" 它。我该怎么做?
(代表OP发表).
最后,我找到了如何在 Windows 上启用 Docker 个容器的远程 API。关键点是文件 daemon.json 放在 C:\ProgramData\docker\config.
在问题链接的指南中,作者只提到我们应该在其中放置如下内容:
{"hosts": ["tcp://0.0.0.0:2376", "npipe://"]}
但是当我尝试将其添加到 daemon.json 时,我的守护程序无法在 CLI 上运行。最后,我颠倒了数组的顺序,比如
{"hosts": ["npipe://", "tcp://0.0.0.0:2376"]}
我的 docker 在 CLI 和远程 API 中都能很好地工作。 Windows Docker 的良好体验,感谢您的关注!
刚遇到同样的问题,发现 REST API 已经启用!
TLDR;
set API=https://192.168.99.100:2376/v1.24/containers/json?all=1
set CERT=C:\Users\Nick\.docker\machine\machines\default
curl --cert "%CERT%/cert.pem" --cacert "%CERT%/ca.pem" --key "%CERT%/key.pem" "%API%"
这是我从 windows cmd
.
访问 REST API 的方式
- 检查docker版本
- 检查我要连接的机器的 URL (
default
> 192.168.99.100:2376
)
- 将环境变量设置为证书的位置
- 在 REST 端点上执行 CURL 请求 (
/v1.24/containers/json?all=1
)
即
C:\Users\Nick>docker --version
Docker version 18.03.0-ce, build 0520e24302
C:\Users\Nick>docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v18.03.0-ce
C:\Users\Nick>set DOCKER_CA=C:\Users\Nick\.docker\machine\machines\default
C:\Users\Nick>curl --cert "%DOCKER_CA%/cert.pem" --cacert "%DOCKER_CA%/ca.pem" --key "%DOCKER_CA%/key.pem" https://192.168.99.100:2376/v1.24/containers/json?all=1
[]
对于那些感兴趣的人...
- Docker 休息 API - https://docs.docker.com/engine/api/v1.24/
我使用 this official guide 在 Windows 上安装了 Docker 个容器。一切看起来都不错,我现在可以在 Windows 容器上 运行 IIS。
但是,我在任何地方都看不到它,也不知道如何 "Enable Rest API" 它。我该怎么做?
(代表OP发表).
最后,我找到了如何在 Windows 上启用 Docker 个容器的远程 API。关键点是文件 daemon.json 放在 C:\ProgramData\docker\config.
在问题链接的指南中,作者只提到我们应该在其中放置如下内容:
{"hosts": ["tcp://0.0.0.0:2376", "npipe://"]}
但是当我尝试将其添加到 daemon.json 时,我的守护程序无法在 CLI 上运行。最后,我颠倒了数组的顺序,比如
{"hosts": ["npipe://", "tcp://0.0.0.0:2376"]}
我的 docker 在 CLI 和远程 API 中都能很好地工作。 Windows Docker 的良好体验,感谢您的关注!
刚遇到同样的问题,发现 REST API 已经启用!
TLDR;
set API=https://192.168.99.100:2376/v1.24/containers/json?all=1
set CERT=C:\Users\Nick\.docker\machine\machines\default
curl --cert "%CERT%/cert.pem" --cacert "%CERT%/ca.pem" --key "%CERT%/key.pem" "%API%"
这是我从 windows cmd
.
- 检查docker版本
- 检查我要连接的机器的 URL (
default
>192.168.99.100:2376
) - 将环境变量设置为证书的位置
- 在 REST 端点上执行 CURL 请求 (
/v1.24/containers/json?all=1
)
即
C:\Users\Nick>docker --version
Docker version 18.03.0-ce, build 0520e24302
C:\Users\Nick>docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v18.03.0-ce
C:\Users\Nick>set DOCKER_CA=C:\Users\Nick\.docker\machine\machines\default
C:\Users\Nick>curl --cert "%DOCKER_CA%/cert.pem" --cacert "%DOCKER_CA%/ca.pem" --key "%DOCKER_CA%/key.pem" https://192.168.99.100:2376/v1.24/containers/json?all=1
[]
对于那些感兴趣的人...
- Docker 休息 API - https://docs.docker.com/engine/api/v1.24/