Anonymous
Ребята, подскажите пожалуйста - для docker-compose up - (mysql) запустить команды последовательно, после установки и запуска самого mysql. Что-то типа onrun:
- 1cmd
- 2cmd
Viktor
Команды в контейнере MySQL?
Anonymous
нет - команды, чтобы выполнились как обычные команды в консоли
Anonymous
в этой директории
Andrey
Andrey
Anonymous
Andrey
Как, так ?
Paul
docker exec -it container bash
Ruslan
docker swarm
Как из контейнера расшать в другой контейнер. Чтоб прит каждом слудующем деплое, данные в контейнере не затирались из volume, а всегда в volume обновлялись из контейнера ?
Anonymous
А как получить статус флагом (true/false) - запущен ли определенный контейнер или нет?
Anonymous
docker inspect -f {{.State.Running}} $CONTAINER_ID ?
Anonymous
о точно это и есть
Paul
docker ps
Paul
docker ps -la
L-dar
Cобрал docker-compose, один из контейнеров постоянно падает и перезапускается. Как можно отследить причину? Спасибо.
central
Yakov
docker-compose logs посмотрите
L-dar
спасибо!
Maksim
Здравствуйте.
Maksim
Подскажите, пожалуйста. Для того, чтобы пробросить порты между контейнером и докером используется -p, вместе с docker run.
А можно ли как то пробросить порты уже в работающем контейнере?
George
нет
George
в смысле документированных и надежных способов это сделать - нет
George
но ты можешь извернуться и параллельно со своим контейнеров поднять nginx, который одним концом будет торчать куда надо, а вторым проксировать в контейнер
Maksim
То есть если я например внес кучу изменений, мне надо коммитить в новый образ, килять этот и заного запускать с новым образом?
George
это правильный сценарий. И вообще изменения в контейнер вносить - плохая практика
George
у тебя должен быть отдельный процесс вненсения изменений и сборки измененного образа
George
а потом его запуска
Maksim
Ну вот мне допустим дали задание, развернуть и настроить freepbx в докер контейнере. Развернуть то я могу с помощью dockerfile, а когда я буду конфиг настраивать, он же будет писаться внутрь, и с помощью dockerfile это нельзя сделать
Maksim
Я так понимаю в такой ситуации необходимо с новым конфигом делать коммит и всеп
George
Нет
George
У тебя концепция неверная
George
Если тебе нужен конфиг, то ты его либо инжектишь в изначальный образ
George
Либо пишешь обертку, которая вызывается при старте докера и формирует нужные конфиги. Например, из переменных окружения
George
Или из внешнего хранилища типа consul
inqfen
inqfen
Либо если образы будут отличаться, собираешь сразу с конфигом
inqfen
Но это неправильно
Maksim
Так конфиг то я из веба делать буду)
Смотреть изменения в файлах внутри и все записывать?
inqfen
Maksim
Ладно, хорошо, допустим. А как конфиг инжектить в образ изначально? Не совсем понимаю
George
George
База или файлы ?
Igor
George
freepbx по моим воспоминаниям работает как
George
у него база типа мускуля
George
в которую он пишет конфиги из веба
George
а потом по ним готовит конфиги для астера и его перезапускает
Maksim
Я пока не знаю, пытаюсь хотя бы поднять, и то не работает.
Igor
не у него файлы конфигов, но он их из вебы перетирает
Maksim
Maksim
вроде проброс правильный
Igor
Maksim
George
какой-то левый проброс
Maksim
Maksim
я пока тупенький, только въезжаю в это дерьмо
Igor
правильным выглядит только 80-й
George
ну, у тебя фактически проброшен только 80->80
George
остальное тупо неактивно
Maksim
так мне и нужен он ПОКА, чтобы хотя бы в веб зайти
George
а ты внутрь контейнера зайди и посмотри - слушает ли он 80-й
Maksim
на хосте все порты разрешены, проброс на контейнер есть, но не заходит
George
может там что-то сломалось внутри
George
или он слушает на 127.0.0.1, а должен на 0.0.0.0
George
или еще какая бяка
Maksim
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN
tcp 0 0 localhost:3306 0.0.0.0:* LISTEN
Maksim
в нетстате больше ничего
George
жопа
Igor
ну зайдите в сам контейнер
пошукайте в нем
Igor
в чем проблема?
Igor
docker exec -itu 0 имяКонтейнераИлиИД /bin/bash
Maksim
Так я в нем, это нетстат из него
Maksim
Если я все правильно понимаю, ничего он не слушает
Igor
ну значит смотрим логи
Maksim
а iptables нет на нем