Oleg
у меня один хост и много контейнеров
Oleg
хочу по имени проксироватьв nginx
Pavel
если все на одном хосте - то проще обращаться внутри докер-сети через линки
Oleg
так то да) но мне надо обращаться с хост машины в контейнер
Oleg
тоесть Nginx снаружи на хосте
Oleg
а сервисы в контейнерах
Oleg
между собой контейнеры общаются по имени, все норм
Pavel
есть проблема поднять nginx в докере?
Oleg
ну небольшая) у меня много приложений разных, соответсвенно я поделил на подсетки все приложения, одна подсеть ен видит другую, подсетей 5, получается нужно 5 nginx-ов в каждой подсети + там надо letsencrypt
Oleg
поэтому я решил снаружи терминировать
Pavel
ну тогда weave тебе не подойдет. его суть в том что он создает свои сети и внутри них видно контейнеры, независимо от того на одном они сервере или нет.
Pavel
А проброс портов не подходит?
Pavel
если у тебя количество приложений и подсетей постоянно, то можно теоретически их на локалхост пробросить
Eugene
кто-нить делал отладку node.js? сервис в docker-compose.yml backend: image: node:7.7.3-alpine volumes: - .:/usr/src/app environment: - PORT=3000 ports: - "3000:3000" - "9229:9229" working_dir: /usr/src/app command: npm start```package.json "start": "node --inspect server.js"потом вставляю ссылку в адресную строку браузера, но выдаёт ошибку WebSocket connection to 'ws://127.0.0.1:9229/2626cb5c-0b83-48ea-a1ad-10ef6e3c447c' failed: Error in connection establishment: net::ERR_SOCKET_NOT_CONNECTEDт.е. пишет, что не может подконектиться, хотя порты открыты, а в логах ноды нет ошибок версия докера 17.03.0-ce, build 60ccb22 версия композа 1.11.2, build dfed245 версия хрома 57.0.2987.110 (64-bit) что можно попробовать, чтобы понять ошибку?
Petr
А в самом server.js
Petr
Что у тебя
Eugene
обычный сервер const restify = require('restify'); const server = restify.createServer(); server.get('/', restify.serveStatic({ directory: './dist', default: 'index.html', })); server.listen(process.env.PORT || 3000, function() { console.log('%s listening at %s', server.name, server.url); });
Alexander
на какой хост вешается? 127.0.0.1 или 0.0.0.0?
Igor
а нода то слушает сокеты?
Igor
ну и судя по логу у тебя вроде как приложение на одном порту, а вебсокеты на другой ломятся
Igor
http://restify.com/#socketio судя по доке твоего кода выше не достаточно для запуска вебскоетов, нужно еще дописать
Igor
ты вроде как просто http сервачок стартуешь
Eugene
заюзал ноду версии 6.6.0 и заработало
Eugene
эт не сокеты рестифи, а самой ноды, когда указываешь --inspect
Eugene
http://restify.com/#socketio судя по доке твоего кода выше не достаточно для запуска вебскоетов, нужно еще дописать
Eugene
ты вроде как просто http сервачок стартуешь
Igor
аа
Igor
я локально вот так делаю node --debug=5858 ./server/app.js в контейнере, чтобы из вебшторма можно было подконектится и продебажить
Igor
шестая стабильная
Igor
lts которая
Igor
ну она вроде не ругается на флаг, я и не знал что он деприкейтед
Igor
работает да работает
Eugene
если кому интересно, то проблема была в том, что инспект вешался на 127.0.0.1, что и не работало внутри докера помогло бинд на 0.0.0.0 https://github.com/nodejs/node/issues/11880
Eugene
ну она вроде не ругается на флаг, я и не знал что он деприкейтед
эт с версии 7.7.0 https://nodejs.org/en/blog/wg/diag-wg-update-2017-02/#inspector-replaces-legacy-v8-debugger
Igor
мы пока не торопимся на 7 переходить, но спасибо, буду знать
Misha Kulakovsky
https://github.com/aacebedo/dnsdock
а чем он лучше встроенного в докер резолва?
Co(n)stantine👨‍🔬
https://www.youtube.com/watch?v=ZV8ndsZBLjI
Oleg
а чем он лучше встроенного в докер резолва?
Эта тулза чтоб обращаться с хоста к контейнерам по днс имени.
Misha Kulakovsky
Эта тулза чтоб обращаться с хоста к контейнерам по днс имени.
Снаружи то есть? А какое этому применение? С routing mesh же без разницы, можно на любую ноду на нужный порт обращаться
Misha Kulakovsky
Кстати, вопрос — как в сворме паблишить порт без routing mesh? У меня сервис в режиме global и мне нужно на каждой ноде именно в контейнер, бегущий на этой ноде, попадать
Misha Kulakovsky
Уже не первый раз натыкаюсь на то что нужная мне фича запилена буквально дни назад.
Ilya
Всем привет. Кто нибудь может подсказать по деплою контейнеров в AWS ECS?
Ilya
Я несколько нуб пока в этих вопросах, в доках ответы на эти вопросы как то не нашлись: 1. Есть 3 контейнера с mysql, есть некоторые начальные данные, с которыми они должны стартовать и которые маунтятся в docker-compose. Обязательно ли билдить образы или можно как то прокинуть эти данные на AWS? 2. Ткните в доку, где описано, как можно распределять контейнеры по инстансам. Например, я хочу запустить 3 контейнера на одном инстансе, 3 на другом и еще 2 на третьем. Как это можно сделать и можно ли? Заранее спасибо.
Artem
компоузом такое вряд ли организуешь, надо смотреть в сторону систем для оркестрации
Artem
что нибудь типо кубернетеса, там можно указывать ноды на которых будет работать
Konstantin
Для такой задачи вполне подойдет Nomand от Hashicorp
Ilya
а средствами AWS-а самого не обойтись?
Roman
но лучше beanstalk+ecs или teraform/nomad+ec2
Roman
с kubernetes застрелишся пока освоишь не на такой мелкий уровень он
Denis
Да че там, все просто, следите в @kubernetes_ru за анонсом следующего митапа и приходите, все вопросы разрешатся сразу :)
Ilya
Вот как раз использую ecs и ecs-cli на ec2 инстансах. И вопрос как раз в том, как средствами ecs сделать задуманное
Ilya
но лучше beanstalk+ecs или teraform/nomad+ec2
Roman
Вот как раз использую ecs и ecs-cli на ec2 инстансах. И вопрос как раз в том, как средствами ecs сделать задуманное
я с ecs не работал извини ) я бы просто с docker-machine инстанс в ес2 сделал бы, а потом с композом бы дамп бы примаунтил который там mysql/mariadb image сразу бы сам заресторил с первым же запуском. просто бы скопировал дамп на тот инстанс и в volume бы прописал (в доках того image докер хабе все описано)
Roman
но если делать грамотно то конечно делал бы я по другому, с бакапами на s3 и отдельным контейнером который их ресторит
Sergey
Всем привет! Есть такая проблема с пробросом портов: В docker-compose файле для контейнера стоят настройки ports: - 0.0.0.0:4443:4443 После запуска docker ps показывает в колонке ports: 0.0.0.0:4443->4443/tcp, 8443/tcp Но при этом netstat показывает: tcp6 0 0 :::4443 :::* LISTEN 17648/docker-proxy- То есть порт доступен извне только по ipv6. Нашёл тикет на гитхабе на эту тему: https://github.com/docker/docker/issues/2174 Вопрос: кто-нибудь сталкивался, есть какой-то солюшен/воркэраунд?
Sergey
А если на localhost замапить, на IP или на 127.0.0.1?
Мне нужно иметь возможность заходить на этот порт снаружи, в этом то всё и дело.
Vasily
Или NAT
Sergey
Просто проверьте. Если так работает - iptables.
Проверил, в этом случае netstat показывает tcp 0 0 127.0.0.1:4443 0.0.0.0:* LISTEN - Дальше добавлять правило в iptables, которое пробрасывает с 0.0.0.0:4443 на 127.0.0.1:4443?
Vasily
Да.
Sergey
Да.
Ок, спасибо!
Vasily
Ок, спасибо!
Напишите как отработает, потом говорите спасибо=)
Roman
блин перепробыл уже столько образов php 5.3 на докер хабе и nginx не может подключится к ним. netstat показывает что все в порядке - ну что же за день то такой (мне тут нужно просто завести старую апликацию)
Roman
мог бы кто посмотреть )? https://hub.docker.com/r/andthensome/docker-php-5.3-fpm/ ну не принимает коннект ))
Anton
где запускаете?
Anton
в nginx тоже порт 9000 прописан?
Roman
да
Roman
если запускаю другой контейнер например php:fpm то все работает тут походу что-то конкретно с этим контейнером не так
Roman
в nginx тоже порт 9000 прописан?
Мог бы пожалуйста запустить у себя этот контейнер тупо с phpinfo()?
Roman
но на него ходить через nginx нужно
Roman
и код надо маунтить в туже локацию на nginx и fpm контейнере
Anton
у тебя мак? не пробросил порт в виртуалбоксе?
Anton
могу но вечером