Это подробно объясняется в докерской документации .По умолчанию Docker работает через не-сетевой сокет Unix (не выставляется).Но он также может опционально общаться через HTTP-сокет.Если вы хотите сохранить это в безопасности, вам нужно настроить TLS.
Я могу скопировать все команды со страницы документа, но я думаю, что это очень хорошо объясняет.
Вкратце:
- Вы должны создать частный CA иоткрытые ключи на вашем сервере (где работает демон).
- Вы можете создать ключ сервера и csr из своего CA.
- Подписание публичного ключа с помощью вашего CA
- Создание подписанного сертификата из файла конфигурации расширений.
- На клиентском компьютере (вашем ноутбуке) создайте клиентский ключ и запрос на подпись сертификата(csr)
- Создание ключа, подходящего для аутентификации, в файле конфигурации расширений на вашем клиенте
- Создание подписанного сертификата (и удаление запросов на подпись)
- Защита файлов ключей с помощью
chmod -v 0400
Теперь вы можете сделать так, чтобы демон Docker принимал подключения только от клиентов, предоставляющих сертификат, которому доверяет ваш CA:
$ dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem \
-H=0.0.0.0:2376
На вашем клиенте вы можете подключиться, используя:
docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem \
-H=$HOST:2376 version
Где $ HOST - это DNS или IP-адрес компьютера, на котором работает ваш демон