Jürgen
Jürgen
Php
Vladimir
поемуто тишина
Jürgen
поемуто тишина
Ну в логах явно что-то должно быть сендмейл должен быть в контейнере с пхп
Vladimir
а nginx c fpm общается по сети через порт 9000, не через сокет
Jürgen
Jürgen
Проверить можно где именно лежит бинарь сендмейл и сравнить что в пхп ини стоит
George
George
вообще идеальнйы вариант, если ты сшиваешься с внешним смтп
Ильдар
Это точно чат про докер?
Andrey
а как registry на кастомный порт повесить?
попробовал так сделать
docker run -d -e REGISTRY_HTTP_ADDR=0.0.0.0:5005 --name registry-test registry:2
но почему-то все равно на 5000 висит
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f283d3f89fe registry:2 "/entrypoint.sh /etc…" 13 seconds ago Up 11 seconds 5000/tcp registry-test
Ильдар
run -p
Andrey
--p это маппинг портов, а чтобы listener другой порт слушал
Ильдар
всё верно (только не --, а -)
Andrey
в доке сказано REGISTRY_HTTP_ADDR использовать
Andrey
но получается что не работает эта балалайка?
Ильдар
работает )
George
Ильдар
залезь в контейнер и посмотри
Ильдар
/ # nc -z localhost 5000; echo $?
1
/ # nc -z localhost 5005; echo $?
0
Vladimir
Ильдар
всё?
Andrey
понял, спасибо, значит PORTS отображает порты в маппинге, мне казалось иначе
Ильдар
ports в данном случае показывает, что в Dockerifle в EXPOSE указано
Yaros
есть простое веб приложение, которое крутится на 3000 порте. запускаю примерно так:
docker run --rm --name test -p 3000:3000 test-image
после запуска "docker ps" возвращает вот такое:
0.0.0.0:3000->3000/tcp
но при этом если открыть localhost:3000/ в браузере или сделать curl localhost:3000/ то
curl: (56) Recv failure: Connection reset by peer
Выполняю docker port container_id опять-таки все нормально:
3000/tcp -> 0.0.0.0:3000
если подключиться к контейнеру и выполнить wget localhost:3000/ то все нормально, возвращает хтмл страничку
В чем может быть проблема? Как отдебажить? Внутри Dockerfile делаю EXPOSE 3000
Илья
в докерфайле expose только для информации, инструкция там ничего не пробрасывает
Илья
она говорит девопсу какой порт надо открыть, если докерфайл собирает разработчик
Илья
насколько я знаю
Yaros
так запустить не пробросит разве: docker run --rm --name test -p 3000:3000 test-image
Илья
а вот так да пробросит
Yaros
я это понимаю, что не пробрасывает экспоуз, как пробросить?
Yaros
Так не пробрасывает че-то 😞
Yaros
сижу на линуксе, контейнер на node:alpine
Ильдар
На хосте nc -z localhost 3000; echo $?
Yaros
netcat -z localhost 3000; echo $?
1
Ильдар
при этом в docker ps
видно
0.0.0.0:3000->3000/tcp?
Yaros
Yaros
то есть да, но с пруфом 😊
Ильдар
уж не фаервол ли?
Yaros
блиин, хорошая идея!
A1EF
так наружу 32768 порт смотрит
A1EF
А не 3000
Yaros
не, смотрит нужный, я просто уже сделал docker run -P чтобы подцепить все, что экспозится
Yaros
до этого делал как надо p host:container результат один
Yaros
но хотя ща попробую его тоже неткатнуть
Yaros
только сейчас понял, что не то неткатнул
Yaros
0 возвращает
A1EF
Ну вот, порт слушается
A1EF
можно и curl localhost:32768 попробовать
Yaros
пробовал, то же самое, что и с 3000 ранее
Yaros
сейчас перезапустил на 3000 опять, опять curl localhost:3000 -> curl: (56) Recv failure: Connection reset by peer
при том, что nc -z localhost 3000; echo $? возвращает 0
A1EF
А внутри контейнера точно отрабатывает сейчас?
Yaros
сейчас проверю
Ильдар
Приложение внутри контейнера на 0.0.0.0 слушает?
Yaros
wget localhost:3000/
Connecting to localhost:3000 (127.0.0.1:3000)
index.html 100%
Yaros
вот внутри контейнера
Yaros
Вообще да, там мапинг порта 0.0.0.0:3000->3000/tcp
Yaros
я чет думаю может тупо забилженное отдать nginx и забить на это? Может webpack dev server что-то свое там делает хитрое ...
Ильдар
Yaros
так, тогда как узнать?
A1EF
Я думаю пора смотреть docker logs:)
Ильдар
Yaros
там только результат билда вебпака и что приложение должно быть доступно на localhost:3000
Yaros
там передается localhost как хост вебпак дев серверу
Ильдар
У тебя запрос с хоста приходит не по loopback
Yaros
Так, я настолько нуб в сетях, что не знаю, что это значит. Что сделать, чтобы я мог с хоста приложение открыть, которое в контейнере?
Yaros
ааа, типа явно передать 0.0.0.0 как хост что-ли?
Ильдар
Да. Глянь ссылку выше. Ты же по сети в контейнер ходишь, а приложение ждет запросы только с локалхоста.
Yaros
да, спасибо, все работает! стыдно, но я до конца так и не понял причину 😞. То есть локалхост хост машины не мапился в контейнер, поэтому так получалось?
Я просто думал, что имея мапинг порта и выполнив на хост машине localhost:3000 этот запрос отправляется внутрь контейнера, раз порт замаплен.
Yaros
Но, спасибо за помощь, все работает!
Ильдар
Ильдар
@blockseeker https://m.habr.com/ru/post/333874/
Oleg
Доброго времени суток. Команда docker service update <SERVICE-ID> не работает, если даже в конфиге указанно
UpdateConfig:
Parallelism: 1
Delay: 10s
Подскажите, при каких условиях срабатывает обновление контейнеров в сварме? требуется перезапуск контейнеров в сварме т.к. в контейнере находится служба которую нужно перезапускать, это проще сделать перезапуском контенеров
Oleg
Для перезапуска контейнеров приходиться выполнять docker service rm <SERVICE-ID> , а потом docker stack deploy -c docker-swarm.yml <IMAGE-ID>, тогда сервисы в контейнерах перезапускаются, а хотелось бы что можно было просто перезапускать контейнеры в сварме без изменения конфигов.
Ильдар
судя по статистике ответов, никто не пользуется swarm
Yura
Всем привет! В docker контейнере крутится php-шный deployer, чтобы развернуть проект по ssh ему нужен приватный ключ, как его передать в контейнер? Через volumes ~/.ssh:какая-то папка?
Andrey
George