ildar
24.02.2019
13:36:01
intruder
24.02.2019
17:10:43
wordpress разворачивал ктото в контейнерах?
~Nyctophobe
24.02.2019
17:11:06
Google
intruder
24.02.2019
17:11:09
)))
а если серьезно? есть проблема. я на 3 контейнерах сделал - база, php-fpm, nginx
функция mail() не пашет, хотя в котейнере с пхп я sendmail поставил
теперь думаю там ли поставил)
Iurii
24.02.2019
17:13:02
Php
intruder
24.02.2019
17:13:19
поемуто тишина
Iurii
24.02.2019
17:14:10
поемуто тишина
Ну в логах явно что-то должно быть сендмейл должен быть в контейнере с пхп
intruder
24.02.2019
17:15:07
а nginx c fpm общается по сети через порт 9000, не через сокет
Iurii
24.02.2019
17:18:36
Проверить можно где именно лежит бинарь сендмейл и сравнить что в пхп ини стоит
George
24.02.2019
17:28:12
вообще идеальнйы вариант, если ты сшиваешься с внешним смтп
Google
intruder
24.02.2019
17:42:52
ildar
24.02.2019
17:49:03
Это точно чат про докер?
Andrey
24.02.2019
17:49:43
а как 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
ildar
24.02.2019
17:50:10
run -p
Andrey
24.02.2019
17:50:42
--p это маппинг портов, а чтобы listener другой порт слушал
ildar
24.02.2019
17:52:44
всё верно (только не --, а -)
Andrey
24.02.2019
17:54:07
в доке сказано REGISTRY_HTTP_ADDR использовать
но получается что не работает эта балалайка?
ildar
24.02.2019
17:55:20
работает )
George
24.02.2019
17:55:23
ildar
24.02.2019
17:55:30
залезь в контейнер и посмотри
/ # nc -z localhost 5000; echo $?
1
/ # nc -z localhost 5005; echo $?
0
intruder
24.02.2019
17:55:38
Andrey
24.02.2019
17:57:41
ildar
24.02.2019
17:57:55
всё?
Andrey
24.02.2019
18:00:27
понял, спасибо, значит PORTS отображает порты в маппинге, мне казалось иначе
ildar
24.02.2019
18:01:39
ports в данном случае показывает, что в Dockerifle в EXPOSE указано
Yaros
24.02.2019
19:32:09
есть простое веб приложение, которое крутится на 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
Илья
24.02.2019
19:36:32
в докерфайле expose только для информации, инструкция там ничего не пробрасывает
она говорит девопсу какой порт надо открыть, если докерфайл собирает разработчик
Google
Илья
24.02.2019
19:37:07
насколько я знаю
Yaros
24.02.2019
19:37:12
так запустить не пробросит разве: docker run --rm --name test -p 3000:3000 test-image
Илья
24.02.2019
19:37:27
а вот так да пробросит
Yaros
24.02.2019
19:37:31
я это понимаю, что не пробрасывает экспоуз, как пробросить?
Так не пробрасывает че-то ?
сижу на линуксе, контейнер на node:alpine
ildar
24.02.2019
19:42:18
На хосте nc -z localhost 3000; echo $?
Yaros
24.02.2019
20:16:02
netcat -z localhost 3000; echo $?
1
ildar
24.02.2019
20:17:26
при этом в docker ps
видно
0.0.0.0:3000->3000/tcp?
Yaros
24.02.2019
20:19:13
то есть да, но с пруфом ?
ildar
24.02.2019
20:19:27
уж не фаервол ли?
Yaros
24.02.2019
20:19:39
блиин, хорошая идея!
A1EF
24.02.2019
20:20:09
так наружу 32768 порт смотрит
А не 3000
Yaros
24.02.2019
20:20:39
не, смотрит нужный, я просто уже сделал docker run -P чтобы подцепить все, что экспозится
до этого делал как надо p host:container результат один
но хотя ща попробую его тоже неткатнуть
только сейчас понял, что не то неткатнул
0 возвращает
Google
A1EF
24.02.2019
20:22:07
Ну вот, порт слушается
можно и curl localhost:32768 попробовать
Yaros
24.02.2019
20:24:12
пробовал, то же самое, что и с 3000 ранее
сейчас перезапустил на 3000 опять, опять curl localhost:3000 -> curl: (56) Recv failure: Connection reset by peer
при том, что nc -z localhost 3000; echo $? возвращает 0
A1EF
24.02.2019
20:25:43
А внутри контейнера точно отрабатывает сейчас?
Yaros
24.02.2019
20:26:08
сейчас проверю
ildar
24.02.2019
20:26:14
Приложение внутри контейнера на 0.0.0.0 слушает?
Yaros
24.02.2019
20:26:44
wget localhost:3000/
Connecting to localhost:3000 (127.0.0.1:3000)
index.html 100%
вот внутри контейнера
Вообще да, там мапинг порта 0.0.0.0:3000->3000/tcp
я чет думаю может тупо забилженное отдать nginx и забить на это? Может webpack dev server что-то свое там делает хитрое ...
ildar
24.02.2019
20:29:08
Yaros
24.02.2019
20:29:24
так, тогда как узнать?
A1EF
24.02.2019
20:29:25
Я думаю пора смотреть docker logs:)
ildar
24.02.2019
20:31:57
Yaros
24.02.2019
20:32:19
там только результат билда вебпака и что приложение должно быть доступно на localhost:3000
там передается localhost как хост вебпак дев серверу
ildar
24.02.2019
20:33:14
У тебя запрос с хоста приходит не по loopback
Yaros
24.02.2019
20:34:45
Так, я настолько нуб в сетях, что не знаю, что это значит. Что сделать, чтобы я мог с хоста приложение открыть, которое в контейнере?
ааа, типа явно передать 0.0.0.0 как хост что-ли?
Google
ildar
24.02.2019
20:37:34
Да. Глянь ссылку выше. Ты же по сети в контейнер ходишь, а приложение ждет запросы только с локалхоста.
Yaros
24.02.2019
20:41:17
да, спасибо, все работает! стыдно, но я до конца так и не понял причину ?. То есть локалхост хост машины не мапился в контейнер, поэтому так получалось?
Я просто думал, что имея мапинг порта и выполнив на хост машине localhost:3000 этот запрос отправляется внутрь контейнера, раз порт замаплен.
Но, спасибо за помощь, все работает!
ildar
25.02.2019
05:48:42
@blockseeker https://m.habr.com/ru/post/333874/
Oleg
25.02.2019
06:02:04
Доброго времени суток. Команда docker service update <SERVICE-ID> не работает, если даже в конфиге указанно
UpdateConfig:
Parallelism: 1
Delay: 10s
Подскажите, при каких условиях срабатывает обновление контейнеров в сварме? требуется перезапуск контейнеров в сварме т.к. в контейнере находится служба которую нужно перезапускать, это проще сделать перезапуском контенеров
Для перезапуска контейнеров приходиться выполнять docker service rm <SERVICE-ID> , а потом docker stack deploy -c docker-swarm.yml <IMAGE-ID>, тогда сервисы в контейнерах перезапускаются, а хотелось бы что можно было просто перезапускать контейнеры в сварме без изменения конфигов.