LINUX.ORG.RU

Docker и /etc/hosts.

 ,


0

2

Не могу раздуплиться с докером. Листаю рецепты настройки LAMP через docker контейнеры. В большинстве случаев домены прописываются непосредственно в /etc/hosts на хост машине вида

127.0.0.1 somehost.dev
Неужели нужно редактировать руками файл /etc/hosts на хост машине, чтобы увидеть домены из /etc/hosts контейнера с вебсервером?


Ответ на: комментарий от dvrts

Имхо в мануале примеров минимум

https://docs.docker.com/compose/networking/

Что нужно вписать в docker-compose.yml чтобы увидеть домен из контенера на хост машине?

version: '2'
services:
  test:
    image: 'php:5.6-apache'
    ports:
      - '80:80'
    volumes:
      - ./src:/var/www/html
    domainname: domainname
    hostname: hostname

zxdx
() автор топика
Ответ на: комментарий от zxdx

может сначала лучше раздуплиться с настройками и использованием виртуальных машин? установить все без докера в виртуалбокс, все вот-это вот.

emptykiev
()
Ответ на: комментарий от emptykiev

Может и лучше, но каким образом это отвечает на поставленный вопрос?

Файл конфига docker-compose.yml запостил. Внутри контейнера домены пингуются. Снаружи на хост машине пингуются только ip из /etc/hosts контейнера. Какая директива/директивы из

https://docs.docker.com/compose/compose-file/compose-file-v2/

позволяют настроить обращение к хосту по доменному имени, а не по ip?

anonymous
()
Ответ на: комментарий от anonymous

Никакая и если честно тебя совсем не понять. Хостс только переписывает результат резолва доменных имен, в твоем сообщении лишние сущности: докер, композер, директива. Добавление айпи в этот файл не влияет на пинг, оверинжиниринг на лицо.

emptykiev
()

Добро пожаловать в облачный-смузи-говностек. Не нужны тебе домены внутри контейнера, домен нужен только для обращения к реверс-прокси которая будет гнать запросы в твои контейнеры.

Deleted
()
Ответ на: комментарий от emptykiev

Я не хочу редактировать /etc/hosts на хост машине, но хочу обращаться к сайту на вебсервере внутри контейнера через домен. То есть в браузере писать не http://172.19.0.2, а http://sitename.dev Какой в этом оверинжиниринг? Тривиальная задача имхо.

dvrts говорит, что это можно сделать. Но не говорит как:)

zxdx
() автор топика
Ответ на: комментарий от zxdx

Ссылку не дам, могу вести пространные беседы.
Можно начать от печки, а зачем вам докер? Если только для изоляции приложения, и например вы ему эксклюзивно отдаете 80й порт, то смиритесь и пропишите домен на хосте, либо на вашем сетевом ДНС.

Deleted
()
Ответ на: комментарий от Deleted

То-есть докер, управляющий контейнром виртуализации, и докер-композ - провижин инструмент, должны менять хостс на ХОСТ_МАШИНЕ, и это должно быть из каропки норм в порядке вещей, ты считаешь? Не перепутал что откуда и куда работает?

emptykiev
()
Ответ на: комментарий от emptykiev

ладно, вот тебе режение (псевдокомманды т.к. не пользуюсь), руками править хостс не нужно:

$ docker install && docker-compose && echo "site.name 192.168.0.2" >> /etc/hosts

норм?

emptykiev
()
Ответ на: комментарий от emptykiev

Остановите ваши вздрыжни. Контейнеризация (не виртуализация, не путайте) вам вообще ничего не должна. ДНС это инфраструктурный уровень, не путайте теплое с мягким. Из продакшен-рейди решений сходу просматривается либо consul-dns, либо реверс-прокси с динамической конфигурации. Что там пытаеться по локалхосту ТС выяснить не удалось.

Deleted
()
Ответ на: комментарий от zxdx

мужик хочет обращаться к хосту по имени сети

неа, мужик хочет именно

обращаться к хосту по домену http://domainname.dev

но у него там да, некоторая каша в сообщении, потому что в примере он явно указывает имена сетей, а потом пишет ' resolve DNS names of the containers from the host machine'

раньше я на хосте цеплял dns от weave для этих целей, но тогда в докере не было своего, щас конечно корретнее сделать как написали ему в ответе:

run dnsmasq or some other DNS server in a container, then bind its port on the host with docker run -p 127.0.0.1:53:53 and have it proxy to the docker dns server

Deleted
()
Ответ на: комментарий от Deleted

Понял, спасибо за совет. Вектор уловил - будем ковырять.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.