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

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

2608 members

Архив канала @docker_ru 28 августа 2016 г.

10:53:56 ДП
User 4627228
Прилетело с HackerNews :) http://www.linux-toys.com/?p=684
10:55:41 ДП
User 4627228
И ещё внезапно сейчас Максим в @kubernetes_ru открыл глаза, что EXPOSE не влияет на доступные порты, как я ожидал ранее) Может для кого-то это также станет новостью.
10:55:41 ДП
User 4627228
но вот здесь никаких портов вроде не expose-ится)
10:55:41 ДП
User 4627228
ну и что?
10:55:41 ДП
User 4627228
да так, я думал должно )
10:55:41 ДП
User 4627228
expose ни на что не влияет
10:55:41 ДП
User 4627228
это для человеков
10:55:41 ДП
User 4627228
не для роботов
10:55:41 ДП
User 4627228
https://docs.docker.com/engine/reference/builder/#/expose
docs.docker.com/engine/reference/builder
Dockerfiles use a simple DSL which allows you to automate the steps you would normally manually take to create an image.
10:55:41 ДП
User 4627228
**EXPOSE does not make the ports of the container accessible to the host.**
01:12:45 ПП
User 2895769
у меня тут вопрос) 

как сейчас на простом проекте без CI: программист билдит на своей рабочей машинке образ из Dockerfile'a, далее он улетает на Docker Hub, далее на сервере команда reload<projectname> перезагружает .service-файлы, в которых вызывается Rkt, который скачивает образы с докерхаба и запускает pod'ы, на лету конвертируя из Dockerfile-based image в aci формат образа... 

проблема1: Docker Hub кажется слегка тормознутым как при закачивании на него, так и при загрузки с него...
проблема2: конвертация в ACI происходит в момент запуска, что мне кажется менее правильным способом (лучше привязывать это как-то к появлению образа в репозитории)

вопрос: использование Docker registry решит проблемы?..
01:15:44 ПП
User 183988217
User 2895769
у меня тут вопрос) 

как сейчас на простом проекте без CI: программист билдит на своей рабочей машинке образ из Dockerfile'a, далее он улетает на Docker Hub, далее на сервере команда reload<projectname> перезагружает .service-файлы, в которых вызывается Rkt, который скачивает образы с докерхаба и запускает pod'ы, на лету конвертируя из Dockerfile-based image в aci формат образа... 

проблема1: Docker Hub кажется слегка тормознутым как при закачивании на него, так и при загрузки с него...
проблема2: конвертация в ACI происходит в момент запуска, что мне кажется менее правильным способом (лучше привязывать это как-то к появлению образа в репозитории)

вопрос: использование Docker registry решит проблемы?..
Разница будет только в том, что Docker Registry может поставить у себя в локалке и пуш и пул образом будет выполняться быстрее, за счет большей пропускной способности сети.
01:16:16 ПП
User 2895769
там в случае Docker Hub'а больше всего времени - ожидание перед началом загрузки туда
01:16:21 ПП
User 2895769
он там что-то непонятное делает
01:17:00 ПП
User 2895769
но меня больше всего 2ой вопрос тут волнует
01:17:47 ПП
User 2895769
я могу в этом Docker registry сделать какой-нибудь плагин/хук/триггер/ивент, не знаю, как там это правильно называется, чтобы при загрузки туда образа, он бы вызывал https://github.com/appc/docker2aci и применял его на этот образ
github.com/appc/docker2aci
docker2aci - library and CLI tool to convert Docker images to ACIs
01:17:56 ПП
01:19:02 ПП
User 183988217
Что значит "применял"? Может на этом образе просто ваши образы надо создавать?
01:19:43 ПП
User 2895769
у докера есть свой формат образов, а есть ACI формат
01:19:55 ПП
User 2895769
на сервере всё запускается через Rkt, которому нужен ACI
01:20:19 ПП
User 2895769
я ищу способ конвертирования из 1 формата в другой не при запуске сервисов, а раньше
01:20:29 ПП
User 2895769
прямо при загрузке образов на сервер
01:21:02 ПП
User 2895769
оригинальный формат образов докера мне не нужен, собственно, докер я тоже планирую удалить с сервера, но в формате докера удобнее всего билдить пока
01:21:12 ПП
User 2895769
так что у программистов именно докер и закачивают они тоже в формате докера
01:21:23 ПП
User 183988217
Может тогда проще при билде образа создавать два образа и пушить их в регистри?
01:21:56 ПП
User 2895769
они билдят на локальной машине и чтобы билдить докер - им нужно иметь эти утилиты типа acbuild, которые будут требовать виртуалбокса
01:22:04 ПП
User 2895769
это менее удобно, чем Docker for Mac
01:22:43 ПП
User 2895769
но в будущем, да, планируется вообще отказаться от докера и всё билдить в ACI изначально, когда появятся более удобные утилиты для программистов
01:22:51 ПП
User 2895769
но пока Docker удобнее там
01:22:57 ПП
User 183988217
ну тогда пускай билдят образ внутри образа докера, где есть все нужные утилиты.
01:23:25 ПП
User 2895769
хмм, интересная идея
01:24:08 ПП
User 2895769
похожа на смерть Кощея
01:24:10 ПП
01:24:50 ПП
User 183988217
Я бы проще поднял CI, где сделал бы джобу, которая из гита тянет нужные файлы и билдит нужный образ и закачивает в регистри.
01:28:48 ПП
User 2895769
ну да, это правильный способ для более крупных проектов
01:28:58 ПП
User 2895769
чтобы билд был не у разработчика, а прямо на сервере
01:36:22 ПП
User 62540640
User 183988217
ну тогда пускай билдят образ внутри образа докера, где есть все нужные утилиты.
Дженкинс внутри докера собирает образы. Ничего сложного.
01:36:59 ПП
User 2895769
понял, да, выглядит более клёвым вариантом
01:37:07 ПП
User 105697514
все пользуются
01:37:09 ПП
User 105697514
удобно
01:38:08 ПП
User 2895769
в общем, разработчик просто запускает build.sh, там все команды , я туда добавлю и команду на конвертацию докер-образа в aci через другой (мой) докер-контейнер, заранее заготовленный для этих целей
01:38:13 ПП
User 105697514
билд на CI, для сборки используется образ докера с набором тоо чего нужно для сборки
01:38:27 ПП
User 105697514
лучше билдить на CI
01:38:54 ПП
User 2895769
минус в CI тут в том, что лень ради каждого мелкого проектика (условно, лэндинг) ставить CI и настраивать
01:39:05 ПП
User 2895769
а в случае с build.sh, его легко скопипастить
01:39:38 ПП
User 2895769
(у меня это скрипт, где всякие docker build и прочие команды)
01:43:16 ПП
User 105697514
build.sh тоже норм
01:43:31 ПП
User 105697514
но билдить при помощи одного общего контейнера
01:43:58 ПП
User 105697514
*у нас например разные версии го - разный выхлоп (порой не компилится), поэтому даже в локале билдим контейнером с предустановленным го
01:44:34 ПП
User 105697514
sudo docker run --rm -v pwd:pwd -w pwd iron/go go build
01:51:09 ПП
User 2895769
у меня сейчас это как-то так выглядит https://dpaste.de/v7Yy
01:51:43 ПП
User 2895769
вот вместо docker push (последние 3 строчки) там будет вызов докер-контейнера с конвертацией из докер-образов в ACI, а потом загрузка этих трёх .aci на сервер
03:51:31 ПП
User 57570003
поспал, называется
сраный докер обезумел и устроил kernel panic
03:51:32 ПП
User 57570003
dirperm1 breaks the protection by the permission bits on the lower branch
03:51:36 ПП
03:51:59 ПП
User 2895769
а поясните наличие строчки TimeoutStartSec=0 в .service-файле для запуска контейнера
03:51:59 ПП
User 2895769
в примерах с докером я её там вижу, в примерах с Rkt нет
03:51:59 ПП
User 2895769
как лучше?
03:51:59 ПП
User 2895769
 Configures the time to wait for start-up. If a daemon service does not signal start-up completion within the configured time, the service will be considered failed and will be shut down again. Takes a unit-less value in seconds, or a time span value such as "5min 20s". Pass "infinity" to disable the timeout logic. Defaults to DefaultTimeoutStartSec= from the manager configuration file, except when Type=oneshot is used, in which case the timeout is disabled by default (see systemd-system.conf(5)).
03:52:14 ПП
User 57570003
User 57570003
dirperm1 breaks the protection by the permission bits on the lower branch
Кто-нибудь сталкивался с таким?
03:52:31 ПП
User 57570003
>Our current guess is that it is caused by the bug fixed in kernel 4.4.6 by this commit
>https://lkml.org/lkml/2016/1/31/82
>But we have not yet managed to test with 4.4.6.
08:58:49 ПП
User 111640107
Расскажите а кто как бэкапит подключенные volume к контейнерам?
09:02:51 ПП
User 54466621
а какой драйвер у volume и что в нем?
09:06:25 ПП
User 111640107
Обычный локальный. Да не важно что, допустим Бд в одном контейнере и куча файлов в другом. Хотелось бы нажать кнопочку и сохранить их состояние как снапшот в ВМ и отправить на какой-нибудь сервер где будут храниться быкапы, чтобы в случае чего этот бэкап можно было всегда развернуть
09:10:00 ПП
User 54466621
driver local такого не умеет, есть другие, которые могут делать снапшоты
09:11:06 ПП
User 54466621
БД лучше бэкапить через стандартные инструменты бэкапа
09:13:44 ПП
User 93701776
бэкапить лучше через те инструменты, которые потом позволят восстановить данные с минимальными затратами и максимальным % результата, а не с восстановлением всей "матрешечной" инфраструктуры ради самого восстановления
09:15:44 ПП
User 111640107
User 54466621
driver local такого не умеет, есть другие, которые могут делать снапшоты
Мне не обязательно снапшот делать. Подойдет просто весь volume запаковать в tar и закинуть на другой хост
09:58:34 ПП
User 197837520
User 57570003
после этого стикера проверил в том ли я чате..)