=====Как включить Docker RestAPI в контейнерах Windows?=====
Ключевым моментом является файл daemon.json , который помещают в C:\ProgramData\docker\config или C:/Users/Username/.docker/config.json.
{
"authorization-plugins": [],
"dns": [],
"dns-opts": [],
"dns-search": [],
"exec-opts": [],
"storage-driver": "",
"storage-opts": [],
"labels": [],
"log-driver": "",
"mtu": 0,
"pidfile": "",
"data-root": "",
"cluster-store": "",
"cluster-advertise": "",
"debug": true,
"hosts": [],
"log-level": "",
"tlsverify": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
"group": "",
"default-ulimits": {},
"bridge": "",
"fixed-cidr": "",
"raw-logs": false,
"registry-mirrors": [],
"insecure-registries": [],
"disable-legacy-registry": false
}
В [[https://docs.microsoft.com/ru-ru/virtualization/windowscontainers/manage-docker/configure-docker-daemon|руководстве]], связанном с вопросом, автор только упоминает, что мы должны поместить в него что - то вроде:
{"hosts": ["tcp://0.0.0.0:2376", "npipe://"]}
Но когда я пытаюсь добавить это в daemon.json, мой демон не работает на CLI. Наконец, я меняю порядок массива, как
{"hosts": ["npipe://", "tcp://0.0.0.0:2376"]}
Мой docker будет хорошо работать в обоих CLI & Remote API.
====Включить через консоль====
- Проверить версию docker
- Проверьте URL устройства, к которому я хочу подключиться ( default > 192.168.99.100:2376 )
- Установите переменную среды в расположение сертификатов
- Выполните запрос CURL на конечной точке REST ( /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
[]