@ru_docker

Страница 219 из 610
Anatoly
17.11.2016
18:34:43
Типа такого

Stepan
17.11.2016
18:35:03
О, сейчас попробую

Anatoly
17.11.2016
18:35:53
Посмотри синтаксис композа

Как там точно

Google
Stepan
17.11.2016
19:05:40
Как я понял, такой синтаксис используется для примонтирования хостового файла в контейнер, у меня-же обратная ситуация, мне нужно чтобы сокет из контейнера был доступен в хостовой машине

Stepan
17.11.2016
19:08:44
Отличие в том, что с таким синтасисом создается _директория_ /tmp/file.sock на хосте, а не копируется файл из контейнера

ptchol
17.11.2016
19:09:26
промаунти диру в которой будет сокет и всё

Stepan
17.11.2016
19:09:58
не работает

ptchol
17.11.2016
19:10:22
что не работает то

Stepan
17.11.2016
19:12:03
Когда я делаю на хосте "curl --unix-socket  /tmp/app.socket "http:/..."  у меня curl: (7) Couldn't connect to server Если я то же самое делаю в контейнере, то всё окей

т.е. если сокет внутри volume, то я не могу с хоста через него общаться

ptchol
17.11.2016
19:13:16
хм

а это наверно логично.

ща.

Stepan
17.11.2016
19:13:38
Логично, согласен :)

ptchol
17.11.2016
19:16:56
ну да

Google
ptchol
17.11.2016
19:16:58
это ж ipc

они типа в разных неймспейсах наверно

Stepan
17.11.2016
19:17:24
похоже

и что лучше сделать?

контейнеры ведь могут друг с другом через сокеты общаться?

ptchol
17.11.2016
19:18:22
для теста в докер ране сказать ipc="host"

--ipc

Stepan
17.11.2016
19:24:23
Всё равно curl: (7) Couldn't connect to server

docker-compose.yml: version: '2' services: app: build: . ipc: host volumes: - "./tmp:/tmp/"

Anatoly
17.11.2016
20:10:40
Видать остается прибивать порты и роутить их через проксирующий нгинкс

ptchol
17.11.2016
20:17:30
сокеты же это ipc ? поидее если ipc=host то сокет созданный контейнером должен ок читаться и на хосте, нет разве ?

Roman
17.11.2016
20:17:35
-v /tmp/file.sock:/tmp/file.sock
Никогда не делай так

Anatoly
17.11.2016
20:18:01
Roman
17.11.2016
20:36:33
Почему?
Перезапусти слушающий процесс в контейнере и все развалится.

Anatoly
17.11.2016
20:43:32
Перезапусти слушающий процесс в контейнере и все развалится.
Зачем перезапускаешь процесс в контейнере? Оно(контейнер) не для того

Evgeny
17.11.2016
20:43:57
Он может перезапуститься сам

Stepan
17.11.2016
20:52:52
В итоге я отказался от идеи с сокетами. Вместо этого решил поднять ещё один контейнер с нджинксом и пытаюсь проксировать запросы к приложениям по имени хоста

Но не тут-то было!

…no resolver defined to resolve <container>!

В сети предлагают ставить dnsmasq в контейнер с нджинксом

Google
Anatoly
17.11.2016
20:56:50
Он может перезапуститься сам
При перезапуске процесса в контейнере котейнер должен перезапуститься, нет?

Roman
17.11.2016
20:57:41
В сети предлагают ставить dnsmasq в контейнер с нджинксом
Нет, для dnsmasq нужен отдельный контейнер

Dan
17.11.2016
20:57:47
…no resolver defined to resolve <container>!
server { location ~ ^/some_url/(.*)$ { resolver 127.0.0.1; proxy_pass http://container1/$1; } }

Roman
17.11.2016
20:58:17
server { location ~ ^/some_url/(.*)$ { resolver 127.0.0.1; proxy_pass http://container1/$1; } }
И куда указывает 127.0.0.1 в контейнере? :)

Dan
17.11.2016
20:58:22
в dnsmasq

Stepan
17.11.2016
20:59:13
если просто указать resolver 127.0.0.1, то не работает потому-что нужен dnsmasq?

Нет, для dnsmasq нужен отдельный контейнер
это шутка или так правда нужно? :D

Roman
17.11.2016
21:03:08
это шутка или так правда нужно? :D
50/50. Одепты утверждают что 1 сервис - 1 процесс

Stepan
17.11.2016
21:03:12
как тогда нджинкс узнает айпи контейнера с dnsmasq?

Roman
17.11.2016
21:03:30
Что делать с тем же кроном в контейнере?

Stepan
17.11.2016
21:03:47
я докер-композ использую, если это важно

Anatoly
17.11.2016
21:04:01
У тебя все в композе ты можешь внутри композа ходить по именам контейнеров если они у тебя есть в links

Stepan
17.11.2016
21:04:34
по именам-то я хожу, но нджинкс не резолвит по именам без днс

т.е. приложения отвечают при запросе из нджинкс контейнера типа curl http://<container>:4000/...

а вот сам нджинкс их не видит

Andrey
17.11.2016
21:09:08
В итоге я отказался от идеи с сокетами. Вместо этого решил поднять ещё один контейнер с нджинксом и пытаюсь проксировать запросы к приложениям по имени хоста
так --link поди не указал, никакой dns в общем то не нужен, для базового взаимодействия контейнеров там всё что надо докер умеет сам

Алексей
17.11.2016
21:09:21
мне иногда кажется что перед использованием докера надо форматировать мозг.

просто тупо в ноль

Stepan
17.11.2016
21:09:33
Зачем? :)

Google
Алексей
17.11.2016
21:09:43
ибо из полезных знаний нужно только архитектура пс и юникса

Andrey
17.11.2016
21:09:54
думаешь одного мозга хватит, без целительно эвтаназии?

Алексей
17.11.2016
21:10:00
а вот поведенческие реалии надо удалять

как гланды

Зачем? :)
Степан, докер _требует_ принципиально другого подхода.

Andrey
17.11.2016
21:11:13
а это ведь всякие свармы пока относительно экзотика

Алексей
17.11.2016
21:11:21
можно принести с собой старые игрушки в песочницу, но играть там будет не интересно.

как получше то объяснить ?

Admin
ERROR: S client not available

Stepan
17.11.2016
21:12:50
если добавить links, nginx в контейнере всё равно не резолвит остальные контейнеры по хостнеймам

Алексей
17.11.2016
21:12:53
надо обязательно считать что у вас микросервисы. и горизонтальная масштабируемость

Andrey
17.11.2016
21:12:54
я вот как то пока не могу для себе обосновать, зачем нгинкс, вообще туда пихать, ну кроме как в случае чтоб красиво пруф оф концепты показывать

Алексей
17.11.2016
21:13:20
и еще считать что _всё_ не локальное.

и что писать на винт _нельзя_

Stepan
17.11.2016
21:14:07
version: '2' services: galton_nginx: image: nginx container_name: galton_nginx ports: - "4000:80" volumes: - ./default.conf:/etc/nginx/conf.d/default.conf links: - moscow_russia_car moscow_russia_car: image: urbica/galton hostname: moscow_russia_car container_name: moscow_russia_car volumes: - ./extracts:/extracts - ./data/moscow_russia_car:/data command: ["https://s3.amazonaws.com/metro-extracts.mapzen.com/moscow_russia.osm.pbf", "car"] как-то так

Anatoly
17.11.2016
21:14:19
Алексей
17.11.2016
21:14:46
Что?
а вот так. писать можно только в базу данных.

которая не в докере.

Google
Алексей
17.11.2016
21:18:20
цепочка рассуждений выглядит так 1. докер непременно сломается. 2. ваш баг будет уникальный и его починят через 3 месяца минимум 3. ваш баг будет мешать вам жить два раза в день 4. для решения проблем вам надо будет перезагрузить хост 5. перезагрузка хоста — простой 6. данные надо хранить 7. идеальный файловых систем которые позволяет писать в сеть пока нету. но есть условно не плохие. но сложные. 8. докер очень не простой способ стрельнуть себе в ногу. 9. я за докер :) #docker #молодец #этаужасно

И логи тоже?
и логи тоже.

Stepan
17.11.2016
21:19:16
вроде похоже на правду, а имена попроше не пробовал, ну или пингануть из тестового контейнера
из контейнера всё пингуется, проблема не в докере, а в нджинксе, который не резолвит контейнеры по именам

Andrey
17.11.2016
21:19:37
враньё всё он пингует

Stepan
17.11.2016
21:19:45
и поэтому надо куда-то прикручивать днс-маск

Andrey
17.11.2016
21:19:49
ресолвит

Алексей
17.11.2016
21:20:11
и заменить их на network диретиву

тогда включится внутренний днс и все будет хорошо

Stepan
17.11.2016
21:20:34
такого я ещё не пробовал

Anatoly
17.11.2016
21:21:12
и логи тоже.
Чем и в какую базу вы пишите логи из доккер контейнера? Как оно ведет себя при падении сети на хосте? Как оно ведет себя при падении базы?

Serhio
17.11.2016
21:22:04
у меня работает так: nginx: restart: always hostname: nginx privileged: true image: serhio/openresty:somaxconn ports: - 80:80 - 443:443 - 7013:7013 - 7015:7015 - 7020:7020 links: - "phpfpm0:php0" в конфиге nginx upstream backend { least_conn; server php0:9000; }

Алексей
17.11.2016
21:22:15
из него journalbeat

Anatoly
17.11.2016
21:22:35
Ясно понятно спасибо

Roman
17.11.2016
21:22:45
Степан, докер _требует_ принципиально другого подхода.
Во многих моментах докер - это шаг назад

Алексей
17.11.2016
21:23:05
но он упрощает деланье демо.

Andrey
17.11.2016
21:23:26
да ты шо, а пацаны то и не знали

Страница 219 из 610