Artem
Скорее всего уже есть образ с bind где нибудь, посмотри как там entrypoint сделан
Yevhen
Cmd named должно хватить
Vladimir
понял,сейчас посмотрю на примере.спасибо
Vladimir
CMD /usr/sbin/named -f с таким запуском сработало!) спасибо огромное за подсказки
Vladimir
а как вы решаете соответсвие в хост системе и в контейнерах id юзеров и групп, под которыми запущены процессы в контейнерах? чтобы корректно отображалось в том же htop
Vegas
Привет, есть вопрос - мне надо получить из контейнера доступ к сетевым интерфесам хоста (их состояниям), собирать контейнер с опцией -v /sys:/host/sys:ro это очень плохо и не надо так никогда делать, или, в целом, допустимо?
Artem
Artem
Так у этих процессов докер родительский из сразу видно
Artem
Ну а если хочется эстетики то пересобирать контейнер и в докерфайлах указывать конкретный uid у юзеров
Vladimir
мне чисто эстетически приятно видеть корректное имя под которым процесс запущен в контейнере, а не то что совпало в хост системе)
Vladimir
Vladimir
будет id получается
Artem
Да
Artem
Ну тогда все контейнеры чтобы работали от рута
Artem
Он то точно есть
Vladimir
нельзя ли примаунтить /etc/passwd /etc/group к контейнеру с хост системы перед установкой пакета?
Vladimir
чтобы в него юзеры из контейнеров добавлялись
Artem
И все это ради эстетики?)
Artem
Ну чет такой себе патерн
Vladimir
я просто до докера в чруте так делал)
Artem
Мне кажется проще во всех контейнерах указывать user root
Artem
При сборке
Vladimir
безопасность не пошатнет? вдруг из контейнера найдут выход на поверхность)
Artem
Если ты не будешь прокидывать туда passwd и прочие извращения, то не найдут)
Vladimir
))
Artem
Ну и если контейнеры по правильному принципу работают: 1 процесс - 1 контейнер , то никак не должно афектить безопасность, и работу других контейнеров
Vladimir
да, так и делаю
Vladimir
насчет рута понял, спасибо за совет)
Vladimir
пойду извращаться
Andrey
Омг, как же скучно я живу))
Pavel
привет ребят
Pavel
docker run -it —rm —network host alpine ash
Pavel
почему, я могу делать ping 8.8.8.8
Pavel
вроде же, host это только only host ?
Andrey
нет
Andrey
https://docs.docker.com/network/host/
Pavel
Как тогда сделать only host?
Andrey
А что нужно? Сеть общая с хостом но без интернетов?
Pavel
Andrey
именно
создай отдельную сетку и запрети из нее ходить наружу
Pavel
Pavel
честно вообще не сталкивался еще
Pavel
Допустим, бридж. Но как я вижу, по дефолту контенеры с ним тоже имеют доступ в интернет
Pavel
Каким образом запретить доступ в интернет? Возможно, лучше использовать сеть none и прокинуть нужные порты? есть возможность прокинуть не из наружи во внутрь, а наоборот, из нутри контейнера наружу?
Анатолий
такая сеть есть по умолчанию...
Pavel
такая сеть есть по умолчанию...
какая такая? У вас тут принято общатся односложными предложениями? Я знаю, что есть сеть none, но если спользовать ее то нужно дать ответ на вторую часть вопроса, а именно как дать возможность из контейнера подключится к одному порту на хосте
Анатолий
когда запускаете контейнер - вы какие сети видите на контейнере в ifconfig?
Анатолий
через что запускаете контейнер? не пользуетесь случайно cloud.docker.com?
Pavel
запускаю просто docker run
Анатолий
потому что если запускать через облако - устанавливается отдельный контейнер и прописывается сеть weave в которой все контейнеры доступны друг другу
Анатолий
если сами запускаете - определите при запуске или в докер-композе сети и будет вам сеть
Pavel
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
и локал хост
Анатолий
из контейнера будет видна в ifconfig
Pavel
да, но как запретить доступ в интернет
Анатолий
из контейнера?
Pavel
да
Pavel
только хост
Pavel
это и был вопрос
Анатолий
какая ось в контейнере?
Pavel
docker run -it —rm —name tmp_default alpine ash
Pavel
alpine
Pavel
но в принцепе могу юзать любую
Анатолий
в контейнере запусти ifdown eth0 - посмотри если сеть отключится такой командой
Анатолий
ну и гугл может помочь - https://stackoverflow.com/questions/47001200/restrict-internet-access-to-docker-container
Pavel
Pavel
Отлично, работает
Pavel
спасибо всем. Не знаю почему не смог найти этот ответ
Vladimir
покажи ip ro в контейнере, что выводит?
Pavel
default via 10.1.1.1 dev eth0
10.1.1.0/24 dev eth0 scope link src 10.1.1.2
Vladimir
т.е. дефолтный роут оставляет, а интернет отключает?
Pavel
Pavel
грубо говоря, не происходит nat для пакетов из этой сети
Vladimir
нашел еще решение, если сеть для контейнеров построена через —network host
Vladimir
docker run —network host —cap-add=NET_ADMIN -it debian:stretch bash
а потом внутри контейнера просто удалять дефолтный роут
ip route del default
Pavel
Vladimir
ну можно рутом только вернуть, а приложение запустить изпод пользователя. или о ком речь, кто может вернуть -я не очень понял
Pavel