Alex
Не прокидовал - только например 3030:3000
Ivgenich
Так обычно и бывает.
Ivgenich
ты можешь поднять 100 постгрессов например прокидывая их 5433:5432 5434:5432 при этом у тебя нативно на хосте тоже стоит постгрес на 5432
Ivgenich
ну не самое удачное. Скорее будет такой случай, что ты поднимаешь контейнер в котором висит сервис который слушает 80 порт или 443, а ты роутишь например nginx`ом хостовым траффик на эти контейнеры и твой фронтовый nginx тоже слушает 80 и 443, но роутит например на 81 82 83 84 85 и т.д. запросы. А контейнеры соответственно смаплены 80ыми портами на 81 82 83 ....
Alex
Просто есть в CMD [типо 0.0.0.0 и порт] или 127.0.0.1 и порт
Alex
То есть запуск например rails server
George
Просто есть в CMD [типо 0.0.0.0 и порт] или 127.0.0.1 и порт
И что ? Как правило внутри контейнера нужно слушать 0.0.0.0, а 127.0.0.1 смысла мало
Ivgenich
В этом случае лучше эти сервисы в контейнере как то вешать на другие порты? или можно не париться
ну внутри контейнера не надо кмк. Я никогда не ломаю порты стандартные сервису внутри контейнера. Нет смысла.
Ivgenich
Если там у тебя uwsgi postgres или что-то еще то и пусть слушает свои порты дефолтные.
Alex
И что ? Как правило внутри контейнера нужно слушать 0.0.0.0, а 127.0.0.1 смысла мало
Просто видел примеры - предположил что оно как то :за борт: контейнера вываливаеться
Ivgenich
Во-первых ты их в хост можешь смапить как хочешь, во-вторых в рамках компоуза ты можешь стучаться по дефолтным портам и не мудрить.
Alex
Ок, спасибо
tfhx8
народ внутри volume есть дира
tfhx8
внутри нее другие диры
tfhx8
и одна из них символьная ссылка на лругую диру
tfhx8
вне докера
tfhx8
но внутри докера оно не работает
tfhx8
почему?
Anonymous
почему?
и не будет, ты каких-то чудес захотел )
George
но внутри докера оно не работает
не должно работать. Хоть докер и безопасность - это не совместимо, но какая-то изоляция в нем есть 8-)
Evgeniy
Всем привет. Ребят, подскажите пожалуйста. Поднимаю php-apache Прописал путь до DocumentRoot ADD ./php.ini /usr/local/etc/php/conf.d/default.ini WORKDIR /var/www ENV APACHE_DOCUMENT_ROOT /var/www RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf но всё равно обращается к var/www/html
Алексей С.
всем привет, нужна помощь! Как составить docker compose файл, так чтобы сервисы из него работали полностью автономно ( т.к. идет пересечение портов с другими сервисами из) и оставить проброс только пары портов для доступа к вебу этих сервисов
central
они вроде и так работают автономно, только стартуют вместе, для этого и нужен compose
Алексей С.
у меня в compose 3 сервиса
Алексей С.
кроме них крутятся контейнеры с аналогичными сервисами
Алексей С.
в связи с этим проблемы: идут обращения на localhost и из-за неккоректной настройки сети из compose обращение проходит не туда (не в compose)
Алексей С.
в связи с отсутствием опыта не понимаю как это все привести в порядок
central
в связи с этим проблемы: идут обращения на localhost и из-за неккоректной настройки сети из compose обращение проходит не туда (не в compose)
если вам не нужен compose его можно заменить добавлением нужным контейнеров в общую сеть и обращение к контейнерам по их именам
George
Я уж не говорю, что по этому куску файла нельзя ничего угадать и вполне вероятно, что конфиги нужно генерить не на стадии билда, а на стадии запуска контейнера. Для этого обычно энтрипойнт переопределяешь и в него хитрый скрипт генерации конфигов пихаешь
central
нужно больше инфы
central
а конфиги на стадии запуска пихать
George
а проще никак?(
Ну, а что ты хотел ? Хочешь запрыгнуть в новую для тебя технологию и не испытать боли ?
George
Минимум пару дней все равно придется въезжать в концепции докера и с чем его едят. И я не про 'прочел статью на хабре'. Можно попробовать, конечно, найти максимально похожий образ (пых + апач) и в него докинуть свои файлы, но половина образов - мусор, а официальные - они, во-первых, для разработки, а не продакшена, а, во-вторых, обладают ограниченным набором регулировок
George
Я бы так и сделал. Nginx ,отдельно + php-fpm отдельно
George
😳Битрикс в докере. День начинает быть интересным
ᴅⁱᵐⁱᴅʳ0ˡ
мне апач нужен для битрикс
На nginx с php-fpm прекрасно работает
Dart
кто поможет сделать связку джанго-дартангуляр-постгрис в докере?
Dart
я не понимаю как он устроен, перечитал хабр и только больше запутался
Alex
Хотел бы еще раз прояснить запускаю контейнер docker run -d -p 9001:3000 mycontainer в контейнере запускаю сервер командой rails server его вывод немного ниже (он работает на порут 3000) Puma starting in single mode... * Version 3.12.0 (ruby 2.3.8-p459), codename: Llamas in Pajamas * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://0.0.0.0:3000 Use Ctrl-C to stop далее я хочу посмотреть его работу командой - выполняю это на сервере а не контейнере curl -L http://ip-containera:9001 получаю curl: (7) Failed to connect to 172.20.0.12 port 9001: Connection refused но если я в контейнере запускаю сервер командой: rails server --binding 0.0.0.0 --port 9001 тогда я получаю Puma starting in single mode... * Version 3.12.0 (ruby 2.3.8-p459), codename: Llamas in Pajamas * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://0.0.0.0:9001 Use Ctrl-C to stop в этом случае curl -L http://ip-containera:9001 отображает сайт - все хорошо спрашиваеться мне всегда нужно писать "--binding 0.0.0.0 --port 9001" я же при запуске контейнера пробросил порт docker run -d -p 9001:3000 зачем мне еще писать этот "--binding 0.0.0.0 --port 9001" поэксперементировал - так команда -p 9001:3000 вообще ничего не решает
Dart
идеалогия 1 образ 1 контейнер, то есть для джанго нужен 1 контейнер, для дартангуляр 2ой и для постгриса 3ий?
Dart
это что нужно иметь 3 докер файла?
Dart
или можно взять базовой образ дебиана и просто туда установить все эти программы?
arts
мне апач нужен для битрикс
Тебе нужна новая работа :-)
George
либо бери готовые модули, по статьям с хабра
George
это что нужно иметь 3 докер файла?
если постгрес стандартный, то ты его можешь употребить образом с докер-хаба
George
а все калибровочные параметры (логины-пароли и пр.) - либо описать в docker-compose (только для тестов), либо вручную через docker run -e BLABLBLA=value ....
George
или можно взять базовой образ дебиана и просто туда установить все эти программы?
нет, это так не работает. У тебя же супервизора или init-демона нет в образе
Andrey
Хотел бы еще раз прояснить запускаю контейнер docker run -d -p 9001:3000 mycontainer в контейнере запускаю сервер командой rails server его вывод немного ниже (он работает на порут 3000) Puma starting in single mode... * Version 3.12.0 (ruby 2.3.8-p459), codename: Llamas in Pajamas * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://0.0.0.0:3000 Use Ctrl-C to stop далее я хочу посмотреть его работу командой - выполняю это на сервере а не контейнере curl -L http://ip-containera:9001 получаю curl: (7) Failed to connect to 172.20.0.12 port 9001: Connection refused но если я в контейнере запускаю сервер командой: rails server --binding 0.0.0.0 --port 9001 тогда я получаю Puma starting in single mode... * Version 3.12.0 (ruby 2.3.8-p459), codename: Llamas in Pajamas * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://0.0.0.0:9001 Use Ctrl-C to stop в этом случае curl -L http://ip-containera:9001 отображает сайт - все хорошо спрашиваеться мне всегда нужно писать "--binding 0.0.0.0 --port 9001" я же при запуске контейнера пробросил порт docker run -d -p 9001:3000 зачем мне еще писать этот "--binding 0.0.0.0 --port 9001" поэксперементировал - так команда -p 9001:3000 вообще ничего не решает
Фантастика
Alex
Фантастика
я пологал что достаточно -p 9001:3000 - и curlom идти на 9001 и все
Alex
но я отдельную сеть для контейнера создавал - не знаю важно это или нет
George
но только тогда, когда у тебя контейнер с контейнером по внутренним адресам взаимодействуют, а не через хост и пробросы портов
Alex
- name: create docker network become: true docker_network: name: network1 ipam_options: subnet: 172.20.0.0/16 gateway: 172.20.0.1
Alex
определил для контейнера 172.20.0.12
Alex
и по этому ip и подключаюсь
Alex
ну я хочу жестко контролировать какой контенер на каком ip
George
ценность менеджить айпишники контейнеров руками? (у меня была необходимость один раз, но это прям особый случай)
Alex
тут не в этом дело - какой ip у контейнера - просто странно что порт не пробрасываеться
George
docker inspect сделай
Alex
а зачем?
с nginx потом проще
George
в любой спорной ситуации инспектируй контейнер и смотри глазами как выглядят параметры его запуска
Alex
docker inspect сделай
я делал - с ip все хорошо
George
с nginx потом проще
вот здесь я соглашусь.. но тебе это не нужно. Ты можешь с тем же успехом накидать пробросов вида -p 127.0.0.1:3000:3000 и ходить по портам в сервисы, а не по айпишникам