#docker #ubuntu #networking #docker-daemon
Вопрос:
В настоящее время я запускаю Ubuntu 20.04 и пытаюсь предоставить удаленный доступ к докеру через tcp с systemd
помощью подхода, указанного в официальном руководстве по докерам.
# config in docker.service.d
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
Однако я заметил, что это работает только тогда, когда IP-адрес указан как 0.0.0.0
вместо 127.0.0.1
.
Могу ли я узнать, что могло привести к тому, что он работал только с 0.0.0.0:2375
и есть ли какая-либо существенная разница в использовании любого адреса обратной связи?
Комментарии:
1. Использование 0.0.0.0 позволит любому, кто может подключиться к системе, тривиально запустить весь хост . 127.0.0.1 позволит любому процессу, запущенному локально в системе, использовать Docker для повышения привилегий. Незашифрованное сетевое окно настройки является критической проблемой безопасности , и вам следует подумать о том, нужно ли переустановить эту систему с отключенной опцией и обновить все пароли, которые могли быть на ней.
Ответ №1:
Документация предписывает вам изменять строки в соответствии с вашими потребностями. При использовании 127.0.0.1
демон будет прослушивать интерфейс обратной связи и, следовательно, не будет доступен из сети. Интерфейс обратной связи предназначен только для доступа на одном и том же хосте.
Когда вы используете 0.0.0.0
(не петлю, а специальный адрес, означающий любой интерфейс, таким образом, включая любой интерфейс(ы), который вы подключили к сети), сетевые запросы, поступающие на ваш хост по порту 2375, будут перенаправляться вашему демону.
Обновление: вы можете думать об этом так. Указанный вами IP -H <IPv4>:2375
-адрес определяет интерфейс, который будет прослушиваться демоном. Это IP-адрес назначения запросов из сети и IP-адрес источника ответов от демона. 127.0.0.1 соответствует интерфейсу обратной связи, и вы можете использовать, например, 192.168.1.54, если это будет один из ваших IP-адресов. 0.0.0.0-это специальный адрес, означающий «прослушивание всех моих интерфейсов».
Комментарии:
1. пытаюсь понять
-H, --host
флаг для dockerd, когда он указан какdockerd -H tcp://[IPv4]:2375
. Является ли часть IP-адреса списком исходного IP-адреса?2. @Dric, я попытался ответить на этот вопрос в обновлении.