Ключевым моментом здесь является запуск докера с того же хоста, на котором вы выполнили сборку докера.
Однако сборка докера не обязательно должна выполняться на самой машине сборки CICD,потому что вы можете указать его локальный док-клиент на удаленный док-хост.
Чтобы указать ваш док-клиент на удаленный док-хост, вам нужно установить три переменные среды.
В среде Linux:
DOCKER_HOST=tcp:<IP Address Of Remote Server>:2376
DOCKER_CERT_PATH=/some/path/to/docker/client/certs
DOCKER_TLS_VERIFY=1
Это очень мощная концепция, которая имеет много применений. Можно, например, указать на узел менеджера роя dev | tst | prod docker. Или перейдите от Linux к удаленной машине Windows и запустите сборку контейнера Windows. Этот последний вариант использования может быть полезен, если у вас есть общий инструмент CICD, который реализует некоторую проприетарную маркировку изображения, которую вы хотите повторно использовать также для контейнеров Windows.
Аутентификация здесь взаимная SSL / TLS, и поэтому необходимобыть закрытыми / открытыми ключами клиента и сервера, сгенерированными общим CA. Поначалу это может быть немного сложнее, и поэтому вы можете захотеть посмотреть, как это работает, сначала используя docker-machine, используя ярлыки настроек среды: https://docs.docker.com/machine/reference/env/
Как только вы освоите эту концепцию, вы сможетенеобходимо настроить эти переменные среды в ваших сценариях CICD, чтобы клиентские сертификаты были доступны безопасным способом.