
Artem
09.03.2018
12:28:17

Max
09.03.2018
12:34:43
@nick_dev нужно просто +2 параметра в енв передать - деф монгоконтейнер создаст админа и закроет конект этим юзером

Vlad
09.03.2018
13:34:46

Usagi
10.03.2018
08:10:10
Добрый день. Подскажите плиз, куда копать? Я вот через docker-compose запускаю с networking внутри, получается на каждый бэк я создал alias. И как достучаться через этот alias c браузера компа?

Google

Artem
10.03.2018
08:26:55
Пробросить порт и прописать себе в хостах что нужно

intruder
10.03.2018
11:26:48
всем привет. Только начал с докером работать и не могу въехать почему при старте docker-compose up с и без ключа d контейнер запускается и тут же выходи т status exit 0 в docker-compose ps. Причём при прямом запуске контейнера docker run -it ... -d он запускается и висит
Может чего в docker-compose.yml надо прописать?

Artem
10.03.2018
12:26:00
Так ты же сам написал, что run запускаешь с -d тогда почему компоуз то запускаешь без него?
docker-compose up -d

Антон
10.03.2018
12:53:40
всем привет. в общем стала такая задача. Есть веб приложение php+mysql+nginx+mongo. Есть много заказчиков, когда кто то заказывает установку, приходится подгатавливать окружение и ставить все это вручную. Потом с помощью ansible уже накатывается само приложение, но после того как сконфигурирован веб сервер.
Хочу этот процесс автоматизировать, и сделать все на контейнерах
правильно ли я понимаю что докер может мне помочь с автоматизацией этого процесса?

Artem
10.03.2018
13:15:36
Правильно

Антон
10.03.2018
13:16:15
Артем, я же тебя знаю
лол. мир тесен

Anton
10.03.2018
13:26:51
Now kiss.

intruder
10.03.2018
13:40:04

Google

Artem
10.03.2018
13:41:14
Из текста не очень понятно было.
Смотри остальные параметры типо маунто, на которых допустим нет прав

intruder
10.03.2018
13:45:24
Не,я пока без монтирования
Буду у компа покажу конфиг,но там простой

Yevhen
10.03.2018
14:17:32
Docker-compose logs смотри, или добавь в композе command: sleep infinity и смотри что происходит

intruder
10.03.2018
16:34:41

Artem
10.03.2018
16:35:44
Ну понятно дело в апе, ты же сам ему указал висеть бесконечно со слипом
Штудируй логи что не так с основным процессом контейнера

intruder
10.03.2018
16:36:19
понял, спасибо.сейчас посмотрю

Yevhen
10.03.2018
16:37:02
Ну да, щас смотри как себя ведёт твоё приложение

Andrey
10.03.2018
20:53:47
Ребят, привет.
А я правильно понимаю, что если в docker inspect я вижу подобную запись, то волюмы не примонтированы и весь контент лежит внутри контейнера?
"Volumes": {
"/home/git/data": {},
"/var/log/gitlab": {}
},

Bogdan (SirEdvin)
10.03.2018
21:03:37
Не правильно. Там еще есть раздел с маунтами.

Andrey
10.03.2018
21:19:32

Yevhen
10.03.2018
22:22:54

Антон
11.03.2018
06:46:38
описал в докерфайле
RUN pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached
запускаю docker-compose build —no-cache php-fpm
и получаю ошибку
pecl/memcached is already installed and is the same as the released version 2.2.0
install failed
как так получается что уже установлен? я же делаю ребилд

Artem
11.03.2018
07:41:24
Ты делаешь ребилд уже из готового образа, т.е. то что было в нем никуда не девается, а ты только добавляешь.

Антон
11.03.2018
07:42:05
хм, его надо как то удалять?
или же можно сделать какую то проверку чтобы игнорировать установленные расширения и двигать процесс установки дальше

Artem
11.03.2018
08:39:59
Ну обычно достаточно докерфайл почитать чтобы понять что есть или нет

Google

Artem
11.03.2018
08:40:41
Собирать образы бездумно не имея понятия что внутри родительского - не очень хорошая идея)

Антон
11.03.2018
08:41:27
да я вообще только сейчас понял что есть образы =)
у меня было мышление только о контейнерах и вольюмах

intruder
11.03.2018
09:03:00
может я какой то важный моент пропускаю?
сделал папку. перешел в нее. создал Dockerfile
FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive
RUN apt update; \
apt upgrade; \
apt install nano htop bind9 -y
собрал образ docker build . -t bind9
создал docker-compose.yaml
version: '2'
services:
bind9:
image: bind9
ports:
- '53:53/udp'
и я не могу понять момент - образ у меня есть со скачанным пакетом bind9, а в какой момент я должен сам bind9 запускать? и где это прописывать
к слову я уже пробовал в Dockerfile прописывать - /etc/init.d/bind9 start и service bind9 start , но все равно контейнер завершается exit 0 как будто выполнил скрипт и завершился

Anton
11.03.2018
09:11:11
Всё правильно - /etc/init.d/bind9 выполнился, и потому завершился с 0.

intruder
11.03.2018
09:12:32
тогда я не вьеду как сервисы стартовать в контейнерах в привычном для обычной ОС виде

Filipp
11.03.2018
09:14:31
А вы без компоуза попробуйте стартовать контейнер.
В целях изучения. Чтоб понять что да как. Как создавать, как стартовать. А компоуз потом, для упрощения

Artem
11.03.2018
09:15:19
Приложение должно уметь работать в виде демона
В контейнере нет инит и системд, потому должно само приложение уметь так работать

intruder
11.03.2018
09:16:27
т.е. запускать с соответствующими ключами не используя стартовые скрипты из /etc/init.d ?

Artem
11.03.2018
09:16:44
Именно
Скорее всего уже есть образ с bind где нибудь, посмотри как там entrypoint сделан

Yevhen
11.03.2018
09:18:44
Cmd named должно хватить

intruder
11.03.2018
09:19:33
понял,сейчас посмотрю на примере.спасибо
CMD /usr/sbin/named -f с таким запуском сработало!) спасибо огромное за подсказки
а как вы решаете соответсвие в хост системе и в контейнерах id юзеров и групп, под которыми запущены процессы в контейнерах? чтобы корректно отображалось в том же htop

Никита
11.03.2018
11:28:42
Привет, есть вопрос - мне надо получить из контейнера доступ к сетевым интерфесам хоста (их состояниям), собирать контейнер с опцией -v /sys:/host/sys:ro это очень плохо и не надо так никогда делать, или, в целом, допустимо?

Artem
11.03.2018
11:43:55

Google

intruder
11.03.2018
11:45:53

Artem
11.03.2018
11:46:48
Так у этих процессов докер родительский из сразу видно
Ну а если хочется эстетики то пересобирать контейнер и в докерфайлах указывать конкретный uid у юзеров

intruder
11.03.2018
11:48:01
мне чисто эстетически приятно видеть корректное имя под которым процесс запущен в контейнере, а не то что совпало в хост системе)
будет id получается

Artem
11.03.2018
11:49:05
Да
Ну тогда все контейнеры чтобы работали от рута
Он то точно есть

intruder
11.03.2018
11:49:44
нельзя ли примаунтить /etc/passwd /etc/group к контейнеру с хост системы перед установкой пакета?
чтобы в него юзеры из контейнеров добавлялись

Artem
11.03.2018
11:50:50
И все это ради эстетики?)
Ну чет такой себе патерн

intruder
11.03.2018
11:51:06
я просто до докера в чруте так делал)

Artem
11.03.2018
11:51:33
Мне кажется проще во всех контейнерах указывать user root
При сборке

intruder
11.03.2018
11:52:38
безопасность не пошатнет? вдруг из контейнера найдут выход на поверхность)

Artem
11.03.2018
11:53:21
Если ты не будешь прокидывать туда passwd и прочие извращения, то не найдут)

intruder
11.03.2018
11:54:23
))

Artem
11.03.2018
11:54:51
Ну и если контейнеры по правильному принципу работают: 1 процесс - 1 контейнер , то никак не должно афектить безопасность, и работу других контейнеров

Google

intruder
11.03.2018
11:55:11
да, так и делаю
насчет рута понял, спасибо за совет)
пойду извращаться

Andrey
11.03.2018
12:03:55
Омг, как же скучно я живу))

Павел
11.03.2018
12:09:38
привет ребят
docker run -it —rm —network host alpine ash
почему, я могу делать ping 8.8.8.8