Docker предоставляет порт контейнера, но ограничивает доступ к сети
У меня есть сервер А, и на нем работает контейнер Б (скажем, SSH-сервер). Я хочу позволить людям выполнять некоторые вычисления на B, которые не имеют доступа к сети.
С использованиемdocker run --publish=${MY_PORT}:22 ...
, я открываю порт контейнера B, чтобы люди могли подключаться к B. Таким образом, люди могут подключаться к B по SSH, используя порт A.${MY_PORT}
порт. Однако люди могут инициировать TCP-соединения с другими серверами (например,8.8.8.8
), поэтому они могут использовать сервер А как переходный хост для совершения плохих дел.
Можно ли изолировать сеть контейнера Б? То есть разрешить доступ только к опубликованному порту и запретить весь остальной сетевой трафик. Я думаю о чем-то похожем на--network=none --publish=${MY_PORT}:22
. Можно ли добиться этого без редактирования iptables Docker?