@docker_ru
Docker — русскоговорящее сообщество

Обсуждаем вопросы, посвященные Docker🐳, Docker Swarm и всей экосистеме. Обмениваем идеями, новостями и решаем пробемы. Вам могут быть полезны: @coreos_ru, @kubernetes_ru, @devops_ru, @rkt_ru Рекомендуем сразу отключить уведомления для удобства

2608 members

Архив канала @docker_ru 6 марта 2017 г.

07:15:29 ДП
User 114941324
Я, например
09:15:44 ДП
User 275098896
#whois
> Какой у вас проект или где работаете?
Сейчас никакой, сейчас нигде

> В чём вы специалист?
В задавании вопросов

> Чем можете быть интересны или полезны сообществу?
Помогаю людям обучаться излагать свои мысли в доступной форме, путем задавания им вопросов

> Чем интересно сообщество вам?
Докером

> Откуда вы?
Украина, Днепропетровск

> Как узнали про группу?
google

Собственно, вопрос:
Хочу, что бы оф. докер образ postgres сохранял базы данных, таблицы и прочий state между перезапусками контейенра.

На оф. странице ( https://hub.docker.com/_/postgres/ ) пишут, что это должно работать без ручного монтирования volumes, благодаря тому, что образ собран с вот такой опцией:
VOLUME /var/lib/postgresql/data
Если я правильно понимаю, эта опция означает, что на хост машине в /var/lib/postgresql/data будут сохранятся все данные, относящиеся к самим базам данных, таблицам итд и соответсвенно, запуск контейнера через
docker container run -d -p5432:5432 postgres
должен наполнять /var/lib/postgresql/data на хост машине и, собственно, решать мою проблему.
Но этого не происходит. Во-первых, такая директория автоматически, почему-то, не создается, во-вторых, все созданные мною базы данных и таблицы не переживают перезапуска контейнера.

Что я делаю не так?
09:22:26 ДП
User 90643195
Докер создаёт volume с нечеловекочитаемым именем и сохраняет его у себя в /var/lib/docker в зависимости от используемого volume driver. И уже затем этот volume монтируется внутрь контейнера по указанному пути. Для монтирования конкретной директории хоста об этом придётся явно написать.
09:23:16 ДП
User 47220902
Кстати, да, кто пользовал docker с LVM бэкэндом?
09:23:33 ДП
User 47220902
Какие плюсы и минусы?
09:24:46 ДП
User 2339730
User 90643195
Докер создаёт volume с нечеловекочитаемым именем и сохраняет его у себя в /var/lib/docker в зависимости от используемого volume driver. И уже затем этот volume монтируется внутрь контейнера по указанному пути. Для монтирования конкретной директории хоста об этом придётся явно написать.
> ... придётся явно написать
в runtime настройке - "-v"
09:25:24 ДП
User 90643195
-v /home/user/postgresdata:/var/lib/postgresql/data:rw
09:27:28 ДП
User 2339730
:rw вроде как по умолчанию?
10:33:57 ДП
User 114941324
Нормально, harbor работает как ui к регистри. 
В целом из явных плюсов:
- очень удобный ui
- простая система регистрации, авторизации. Можно делать даже guest доступ, который может только пулить образы
- Требуется настройка только проектов, образы автоматически создаются при пуше
10:34:11 ДП
User 114941324
В целом, развернуть его не так сложно
10:34:28 ДП
User 114941324
разве что могу сказать, что ui нормально на ссылки вида http://my.cute.site/harbor не настроить, вроде как
10:37:44 ДП
User 114941324
Хм, настраивал по инструкции?
11:16:29 ДП
User 100599379
У кого нибудь есть опыт скрешивания ansible и docker(docker-compose), вот допустим у меня есть несколько плейбуков которые реализуют разные части единого сервиса, так же у каждой части есть список ролей(допустим для одного нужен rabbitmq, для другого redis, и т.д). 
Я пытаюсь понять как мне превратить это в единый docker-compose.yml, так что-бы он занимался только линковкой сервисов, а настройкой окружения и т.д. занимался уже ansible.
Может есть какие-то best practice для задач подобного рода?
11:18:54 ДП
User 61193397
User 100599379
У кого нибудь есть опыт скрешивания ansible и docker(docker-compose), вот допустим у меня есть несколько плейбуков которые реализуют разные части единого сервиса, так же у каждой части есть список ролей(допустим для одного нужен rabbitmq, для другого redis, и т.д). 
Я пытаюсь понять как мне превратить это в единый docker-compose.yml, так что-бы он занимался только линковкой сервисов, а настройкой окружения и т.д. занимался уже ansible.
Может есть какие-то best practice для задач подобного рода?
Все просто. Плейбуки помещаются в образ или качаются внутрь при разворачивании, в композе определяются переменные окружения контейнера, в которые передаются роли или окружение для контейнеров, плейбуки читают переменные окружения.
11:23:17 ДП
User 114941324
User 100599379
У кого нибудь есть опыт скрешивания ansible и docker(docker-compose), вот допустим у меня есть несколько плейбуков которые реализуют разные части единого сервиса, так же у каждой части есть список ролей(допустим для одного нужен rabbitmq, для другого redis, и т.д). 
Я пытаюсь понять как мне превратить это в единый docker-compose.yml, так что-бы он занимался только линковкой сервисов, а настройкой окружения и т.д. занимался уже ansible.
Может есть какие-то best practice для задач подобного рода?
А чем вам не нравится идея настроить это через ansible? Там есть модули docker_container и docker_network
11:27:57 ДП
User 100599379
User 114941324
А чем вам не нравится идея настроить это через ansible? Там есть модули docker_container и docker_network
Да, это было бы идеально, только я не совсем понимаю эти модули, они допустим могут легко создать контейнер, обновить его и т.д. но как слинковать их по типу того как делает compose не совсем понимаю. тут есть еще такой момент, я бы не хотел затачивать сами плейбуки именно под докер, т.к. они используются не только с докером, хотелось бы решить какой-то высокоуровневой надстройкой над всем этим
11:30:04 ДП
User 100599379
В общем я еще сам слабо представляю как это должно быть, т.к. докер пока применял для одно-двух компонентых простых систем, где вобще нет таких проблем. В перспективе по идее нужно еще держать в голове что нужно как то затачиваться по swarm
11:30:46 ДП
User 114941324
User 100599379
Да, это было бы идеально, только я не совсем понимаю эти модули, они допустим могут легко создать контейнер, обновить его и т.д. но как слинковать их по типу того как делает compose не совсем понимаю. тут есть еще такой момент, я бы не хотел затачивать сами плейбуки именно под докер, т.к. они используются не только с докером, хотелось бы решить какой-то высокоуровневой надстройкой над всем этим
1. А вам точно нужна линковка? Возможно, лучше развернуть в хостовой сети, что бы не было оверхедов?
2. А так нужно создать через docker_network и уже привязывать там контейнеры, указывая сети в docker_container модуле
11:30:47 ДП
User 100599379
Хорошо бы найти материалы с похожим опытом, идеально примеры
11:33:57 ДП
User 100599379
о, вот этого я не видел, видел только модули для тасков, спасибо, буду изучать.
11:44:09 ДП
User 114941324
Я бы сразу предложил, если это будет использовать более-менее серьезно, купить домен и https. Иначе это будет ад с insecure-registry, который в самом докере работает через задницу
11:58:33 ДП
User 114941324
Просто при каждом обновлении, например, слетает настройка)
01:06:39 ПП
User 183627422
ребзя
01:07:07 ПП
User 183627422
кто может объяснить загадки iptables и docker
01:07:27 ПП
User 183627422
есть контейнер, идет проброс 443 порта.
01:08:05 ПП
User 183627422
есть второй контейнер на этой же машине, и из него не доступен telnet EXTERNALIP(WHITEIP) 443
01:08:20 ПП
User 183627422
как выяснилось это потому что policy ACCEPT DROP но
01:08:35 ПП
User 183627422
ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:https
01:08:51 ПП
User 183627422
ой) policy INPUT DROP
01:09:00 ПП
User 183627422
как только делаю ACCEPT все работает
01:09:04 ПП
01:09:05 ПП
01:09:54 ПП
User 183627422
надо чтоб было INPUT DROP но с accept 443
01:10:04 ПП
User 183627422
собственно как и сделано, но почему то не работает. причем именно с локального контейнера! с моей локальной машины я нормально иду по 443
04:31:14 ПП
User 199194369
expose есть?