The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск cистемы управления контейнерной виртуализацией Docker 1.13

20.01.2017 18:49

После шести месяцев разработки подготовлен релиз инструментария для управления изолированными Linux-контейнерами Docker 1.13, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.

Основные изменения:

  • Расширены возможности режима Swarm, начиная с прошлой версии интегрированного в состав движка Docker и предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swarm даёт возможность управлять кластером из нескольких хостов Docker по аналогии с работой с одним виртуальным хостом. В новой версии обеспечена поддержка использования compose-файлов (docker-compose.yml) для развёртывания сервисов в режиме Swarm (сложный мультисервисный стек теперь можно развернуть на нескольких хостах одной командой "docker stack deploy"). Из плюсов применения docker-compose.yml отмечается возможность указания желаемого числа экземпляров каждого сервиса, применение политики обновления и определения условий запуска сервисов.
  • Улучшена обратная совместимость на уровне взаимодействия управляющего демона с инструментарием командной строки (CLI). Если раньше использование новой версии клинта со старой версией демона приводило к проблемам (выводилась ошибка "Error response from daemon: client is newer than server"), то начиная с выпуска 1.13 новые версии CLI учитывают особенности прошлых выпусков демона и могут использоваться для управления ими, что значительно упрощает организацию управления инфраструктурой с одной системы. На случай если клиент пытается выполнить действие, которое ещё не реализовано в демоне в новом выпуске добавлены средства для согласования функциональности клиента и сервера;
  • Реализованы две новые команды "docker system df" и "docker system prune" для отображения сведений об используемом дисковом пространстве и для выполнения операции очистки неиспользуемых данных;
  • Проведена реструктуризация интерфейса командной строки, все команды реорганизованы для более логичного соответствия объектам, с которыми они взаимодействуют. Например, команды "list" и "start", применяемые для вывода списка контейнеров и запуска контейнера, перенесены в команду "docker container" и теперь являются подкомандами ("docker container list" и "docker container start" вместо "docker list" и "docker start"), а команда "docker history" преобразована в "docker image history". Поддержка старого синтаксиса команд сохранена для обеспечения обратной совместимости;
  • Расширены средства мониторинга. Добавлена экспериментальная команда "docker service logs", позволяющая упростить отладку сервисов за счёт избавления администратора от ручного сбора логов из отдельных хостов и контейнеров. При выполнении "docker service logs" логи из всех контейнеров, в которых выполняется указанный сервис, будут перенаправлены в текущую консоль. Кроме того, в новой версии появилась точка сбора параметров (/metrics) с метриками контейнеров, образов и состояния управляющего демона, выводящая данные в стиле Prometheus;
  • В команде "docker build" появился новый флаг "--squash", позволяющий агрегировать все производимые при сборке слои файловой системы в один сводный слой, что может оказаться полезным при создании минималистичных образов контейнеров. Ценой такого объединения является увеличение накладных расходов при перемещении образов и невозможность совместного использования таких контейнеров. В команду сборки также добавлен флаг "--compress" для сжатия сборочного контекста, отправляемого из CLI в управляющий демон, что позволяет ускорить сборки, при которых осуществляется взаимодействие с демонами на других хостах;
  • Началось бета-тестирование Docker для облачных платформ AWS и Azure.


  1. Главная ссылка к новости (https://blog.docker.com/2017/0...)
  2. OpenNews: В Docker 1.12.6 устранена уязвимость, позволяющая выбраться из контейнера
  3. OpenNews: Выпуск CentOS Atomic Host 7.20160707, специализированной ОС для запуска контейнеров Docker
  4. OpenNews: Docker 1.11 переведён на containerd и runC
  5. OpenNews: Выпуск rkt 1.3, конкурирующего с Docker инструментария управления контейнерами
  6. OpenNews: Выпуск Docker 1.10. Перевод официальных образов Docker с Ubuntu на Alpine
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45891-docker
Ключевые слова: docker, container, virtual
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ъ (?), 20:01, 20/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Возможно кто может ответить - как правильно перезапускать контейнер? (У меня в контейнере БД и при stop - start каждый раз начинается процесс recovery.)
     
     
  • 2.3, Anon43210 (?), 20:24, 20/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Запустить внутри контейнера (docker exec) команду, посылающую сигнал основному процессу для Graceful shutdown/restart. Т.е. сделать так, чтобы контейнер (процесс в нём) сам себя аккуратно прибил, совершив все необходимые ему ритуалы :)
     
  • 2.4, Cykooz (ok), 22:46, 20/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Предполагаю, что у вас процесс базы данных в контейнере запускается как то криво. Например через bash скрипт без использования башевской команды exec. В результате, при остановке контейнера, bash завершается но не пробрасывает сигнал завершения в базу данных. Процесс базы данных не корректно завершается и при следующем запуске начинает recovery.
     
  • 2.5, Аноним (-), 23:41, 20/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    вы делаете docker stop и mysql процессу прилетает kill -9
    как верно подметили выше запустите в докере грубо говоря /etc/init.d/mysql stop
    если mysql у вас был основным процессом - то он корректно завершится и контейнер схлопнется
    в принципе все эти пляски можно занести в отдельный скрипт и заалиасить например в mysql-docker stop/start/restart
     
     
  • 3.6, Аноним (-), 00:48, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    mysqladmin -uroot -p -h127.0.0.1 --protocol=tcp shutdown

    mysql> SHUTDOWN

     
  • 3.7, Cykooz (ok), 00:52, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > вы делаете docker stop и mysql процессу прилетает kill -9

    Не совсем так.
    The docker stop command attempts to stop a running container first by sending a SIGTERM signal to the root process (PID 1) in the container. If the process hasn't exited within the timeout period a SIGKILL signal will be sent.
    Т.е. сначала посылается SIGTERM, и только через 10 секунд (настраивается опцией для команды stop) посылается SIGKILL.

     
  • 2.11, leap42 (ok), 03:10, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    никак
    контейнеры steteless by design, если вы положили БД в контейнер, значит, вы используете их неправильно
     
     
  • 3.18, leap42 (ok), 11:01, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    если минусаторы не могут понять эту простую идею своей пустой головой, не верят мне, пусть хоть прочтут статейку от крутых парней (они сделали xtradb, дефолтный движок mariadb):

    https://www.percona.com/blog/2016/11/16/is-docker-for-your-database/

    там всё разжёвано для слабоумных

     
     
  • 4.22, Василий Топоров (?), 13:16, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Смотрите, а если у меня такой кейс: есть старое приложение с корявой базой данных. Оно конфликтует с версией базы, установленной глобально (база плохо спроектирована, нарушена целостность). Для этого приложения мне нужна не самая новая версия базы (MySQL), чтобы не прыгать в командой SET global="..." Короче, надо чтобы база была такая же, как на живом сервере. Вроде как Докер напрашивается сам собой? Чем конкретно Докер плох для моего локального компьютера?
     
     
  • 5.26, leap42 (ok), 14:57, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Смотрите, а если у меня такой кейс: есть старое приложение с корявой
    > базой данных. Оно конфликтует с версией базы, установленной глобально (база плохо
    > спроектирована, нарушена целостность). Для этого приложения мне нужна не самая новая
    > версия базы (MySQL), чтобы не прыгать в командой SET global="..." Короче,
    > надо чтобы база была такая же, как на живом сервере. Вроде
    > как Докер напрашивается сам собой? Чем конкретно Докер плох для моего
    > локального компьютера?

    не оч вас понял, если честно, но docker - отличный инструмент для тестирования, дебага, разработки и деплоя приложений, но толкать в него инфраструктуру (сеть или хранилище, например в виде БД) - идея плохая

     
  • 4.23, Аноним (-), 14:13, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    XtraDB это пропатченный InnoDB, а не новый движок БД.
     
     
  • 5.24, Аноним (-), 14:42, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    XtraDB это расширительный обвес внутри InnoDB с флагами, а не только пропатченный InnoDB.
     
  • 5.25, leap42 (ok), 14:51, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    слово "новый", дорогой аноним, ты придумал, я его не писал
    ты, дорогой аноним, пробовал писать патч для innodb так, чтобы оно стало работать быстрее? а xtradb быстрее innodb, потому и принято в mariadb. ребята крутые, не понимаю, к чему эта ремарка.
     
  • 3.45, Аноним (-), 20:38, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    лол што? вы явно в проде докер или мезос не юзаете. стейт лес это не запрет БД в контейнер, а то что на сам контейнер ведет себя одинакового. volumes вы можете подсовывать самые разные.
     
  • 2.52, хурмен (?), 17:03, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Пожалуйста
    https://medium.com/@gchudnov/trapping-signals-in-docker-containers-7a57fd
     
  • 2.53, Алконим (?), 03:50, 25/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Использовать systemd контейнере (с соответсвующим ключем) и не ипать себе мозг.
     

  • 1.8, vadikgo (ok), 01:04, 21/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Нужно в скрипте запуска обрабатывать хэндлеры. Пример здесь: https://github.com/oracle/docker-images/blob/master/OracleDatabase/dockerfiles
     
  • 1.9, Аноним (-), 01:32, 21/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    До сих пор так и не понял. зачем нужны контейнеры?
     
     
  • 2.10, Аноним (-), 01:42, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотреть на то как быстро запускается pid=1 в неймспейсе.
     
  • 2.12, leap42 (ok), 04:17, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    деплоили когда-нибудь софт на python/ruby, требующий десятков модулей определенных версий? а теперь представьте, что вам нужно деплоить новую версию каждый день, да ещё и по 2-3 раза (чтобы потестировать перед продом). в некоторых из этих ситуаций контейнеры здорово упрощают жизнь.
     
     
  • 3.13, angra (ok), 05:01, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Неужто в python/ruby нет аналога local::lib? Сильно в этом сомневаюсь. Даже если нет, то обычного chroot для решения хватило бы.
    Сдается мне, что многие из пользующихся контейнерами не очень и понимают, что это такое.
     
     
  • 4.16, анонимбл (?), 10:31, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы не понимаете, что это такое и зачем это использовать.
     
  • 4.17, Доктор Психиатор Котлетоватян (?), 10:51, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Так это и есть обычный chroot на стеройдах.
     
     
  • 5.27, Валик228 (?), 15:57, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Так это и есть обычный chroot на стеройдах.

    ты глупыш, чрут реализует изоляцию только на уровне файловой системы в отличии от докера и прочих контейнеров

     
     
  • 6.40, Для тупых (?), 02:49, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чрут на стеройдах реализует изоляцию не только на уровне файловой системы, в отличие от обычного чрута.
     
  • 3.21, Neptus (?), 11:49, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Conda (anaconda miniconda) позволяет менять окружение для каждого проекта.
     
     
  • 4.33, denis (??), 19:31, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так это и  virtualenv умеет, только этого мало. Docker позволяет создавать изолированные микросервисы с изолированем и масштабированием. Удобная вещь, но меня не покидает ощущение что он убьет линукс. Теперь можно спокойно работать под вин даже с чисто линуксовыми вещами... Немного печально)
     
     
  • 5.51, arlex (?), 23:04, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Доля Linux на десктопе и так небольшая, да и вообще слабо коррелирует с возможностью запуска окружений разработки, к тому же те из разработчиков, кто хотел перейти на Linux, уже давно это сделали. А по части серверов подобная ситуация только на руку Linux, потому что у M$ и близко ничего подобного контейнерам нет.
     
  • 2.20, Аноним (-), 11:27, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Бздунам под джейлом они не нужны
     
     
  • 3.28, Валик228 (?), 16:00, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Бздунам под джейлом они не нужны

    а как бздуны нарезают в джейлах лимиты на сеть, диск?
    или бздунам лимиты тоже не нужны?

     
     
  • 4.29, Аноним (-), 16:12, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    VIMAGE, VNET падает в панику, сеть не нарезают со всем остальным вроде есть успехи.

    Но да как не была готова это ОС продакшену, так и не будет включая и докер в бсде.

     
     
  • 5.34, . (?), 23:57, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > VIMAGE, VNET падает в панику, сеть не нарезают

    А у меня руки из плеч растут - я такого как то не встречал :)
    > Но да как не была готова это ОС продакшену,

    Мази купи от пригара, Ыгспёрд :)
    >так и не будет включая и докер в бсде.

    у них свой с библиотекаршами будет :)
    Ну и стандартный в линуксиляторе допилят.

     
     
  • 6.36, Средневековый Джокер (?), 01:46, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну и стандартный в линуксиляторе допилят.

    В следующей столетие.

     
  • 5.44, Аноним (-), 16:38, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > сеть не нарезают

    Ух ты, а провайдеры в 2000-х и не знали, что нельзя нарезать сеть бздами.
    > Но да как не была готова это ОС продакшену,

    Расскажите это всяким нетфликсам, а то бедолаги не знают и треть трафика страны разносчиков и причинителей демократи бздами качают, профиты профукивют.

     
  • 4.31, Аноним (-), 18:27, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > лимиты на сеть

    ставят 10-мегабитную сетевуху, благо не надо выбирать поддерживающуюся. :-)

     
     
  • 5.43, Аноним (-), 15:11, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >> лимиты на сеть
    > ставят 10-мегабитную сетевуху, благо не надо выбирать поддерживающуюся. :-)

    Правда, оно умело нарезать сеть еще когда многие умники опеннета пешком под стол ходили... Типа, классическое
    ipfw pipe 1 config bw 300Kbit/s
    но этого местным петросянам знать не обязательно )

     
     
  • 6.47, Аноним (-), 23:48, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    о древнее зло которое нарезает медленно
     
     
  • 7.48, Аноним (-), 09:43, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    зато стабильно, как бы нужно стремится к стабильности.
     
     
  • 8.49, Аноним (-), 16:39, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Некоторым религия не позволяет использовать altq при наличии альтернатив queue ... текст свёрнут, показать
     
     
  • 9.50, Аноним (-), 21:12, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    пердежи про стабильный hfsc на фоне гугловского планировщика в linux ... текст свёрнут, показать
     
  • 4.42, Аноним (-), 15:05, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >>> До сих пор так и не понял. зачем нужны контейнеры?
    >> Бздунам под джейлом они не нужны
    > а как бздуны нарезают в джейлах лимиты на сеть, диск?

    Альтернативная логика некоторых, излишне лапчатых - если нет контейнера, то нет и лимитов? Правда, джейл вроде как аналог, да и цель прибивания лимитов гвоздями к контейнерам не очень ясна, но насчет этого зилоты похоже особо не задумываются да?
    > или бздунам лимиты тоже не нужны?

    rctl -a jail/process/user:name_or_id:readbps:throttle=10M
    rctl -a jail/process/user:name_or_id:writeiops:throttle=1337
    А насчет лимитов на сеть даже не вбросно^W смешно. Так что попробуй еще раз.

     

  • 1.15, Anonimus (??), 09:58, 21/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скажите знающие люди, контейнеры можно использовать в прдакшене или они годятся только для тестов?
     
     
  • 2.19, Аноним (-), 11:12, 21/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Юзаем контейнеры в проде, есть небольшой пережор по памяти по сравнению со старым подходом, но в целом полет нормальный.
     
     
  • 3.35, . (?), 00:02, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Повезло. Я вот в нём старый Jenkins держу для ~35 девелов\7 проектов ... не скажу что счастлив, но иначе очень уж гимморно всю солянку версий на одном хосте собирать. А тупо по ВМ нарезать - не влазиит, нищeбpoды они :(
     
     
  • 4.37, Средневековый Джокер (?), 01:50, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Повезло. Я вот в нём старый Jenkins держу для ~35 девелов\7 проектов
    > ... не скажу что счастлив, но иначе очень уж гимморно всю
    > солянку версий на одном хосте собирать. А тупо по ВМ нарезать
    > - не влазиит, нищeбpoды они :(

    http://rancher.com/rancher/

    или Ansible + Terraform

     
  • 4.38, Средневековый Джокер (?), 01:59, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Повезло. Я вот в нём старый Jenkins держу для ~35 девелов\7 проектов
    > ... не скажу что счастлив, но иначе очень уж гимморно всю
    > солянку версий на одном хосте собирать. А тупо по ВМ нарезать
    > - не влазиит, нищeбpoды они :(

    OpenNabula + KVM и развешать докеры с Rancher (development, testing, staging, production).

     
  • 2.39, angra (ok), 02:32, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Контейнеры они несколько разные бывают. OpenVZ уже много лет как используется в продакшене для легковесной виртуализации с выдачей клиенту рута. LXC или LXD они на поиграться или только в доверенной среде для удобства. Docker это несколько другой вариант виртуализации, но опять таки подходит больше для доверенной среды, хотя о безопасности там тоже немного заботятся. Но лучше все-таки набор docker контейнеров внутрь KVM помещать, чем напрямую пускать.
     

  • 1.30, Аноним (-), 16:31, 21/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/
     
  • 1.41, АнонимХ (ok), 08:37, 22/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Docker - это такой flatpak для серверных приложений? (Сам flatpak, понятно, для десктопных) Объясните.
     
     
  • 2.46, Аноним (-), 20:42, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно так, только в docker еще накрутили управление контейнерами композ и сварм
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру