Код
#подборки

Must read. 5 свежих англоязычных статей о Docker

Как чаще всего ошибаются в работе с Docker, чем он полезен для Deep Learning и Data Science и какие у него проблемы с безопасностью.

chinahbzyg / shutterstock

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

Docker и Kubernetes: противники или союзники?

Зачем читать: чтобы узнать больше об устройстве Docker и Kubernetes и понять, стоит ли их вообще сравнивать.

Где читать: на Imaginary Cloud.

Docker и Kubernetes — самые известные технологии для контейнеризации. Но что вообще такое контейнеризация? Это метод разработки, при котором код, все необходимые фреймворки и библиотеки работают в изолированном контейнере — независимой от внешнего мира среде. Благодаря этому приложения получаются надёжнее и мобильнее: они не привязаны к операционной системе, а неполадка в одной части не повлияет на работу остальных.

Вернёмся к Docker и Kubernetes. Обе программы нужны для работы с контейнерами, но одна ли у них цель? И да и нет. Docker нужен в первую очередь для разработки и запуска контейнеров, в то время как Kubernetes — для их организации, автоматизации и масштабирования.

Кстати, у Docker есть свой аналог k8s — Docker Swarm. Именно с ним будет корректно сравнивать Kubernetes, и, судя по звёздочкам на GitHub, Kubernetes пока уверенно побеждает. Выходит, что комбинировать его с Docker — это лучшее решение, а сами продукты скорее отлично дополняют друг друга, а не конкурируют.

7 ошибок при работе с Docker

Зачем читать: чтобы узнать, куда не надо лезть и какие решения — самые эффективные.

Где читать: на CloudSavvyIT.

Начать работу с Docker очень просто, но со временем вы заметите всё больше и больше нюансов. Вот топ самых распространённых ошибок, которые вполне могут усложнить жизнь и лишить ваши контейнеры светлого будущего:

  1. Обновление пакетов прямо в контейнере. Файлы в контейнерах ведут себя не так, как в обычных виртуальных машинах: изменения теряются, если контейнер перестаёт работать, а потом воспроизводятся снова из Docker-файла. Поэтому, чтобы не вышло путаницы, лучше пересобрать Docker-образ и перезапустить весь контейнер, а не обновлять пакеты внутри него.
  2. Несколько сервисов в одном контейнере. Суть контейнеров — в разделении. В идеале у каждого контейнера должна быть одна функция — так легче что-то поправить. Да и расширять проект — тоже.
  3. Побочные эффекты. Команда docker build не должна никак влиять на окружение. Её цель — это сборка образа. Будет совсем некстати, если она внезапно сделает что-то ещё.
  4. Слишком сложные Docker-файлы. Если файл выполняет сразу несколько разных функций, лучше разбить его на несколько файлов поменьше. Чем легче и минималистичнее файлы, тем проще с ними работать.

Ещё три ошибки — в оригинальной статье.

Секреты на просторах Docker Hub

Зачем читать: чтобы узнать о правилах безопасной работы с образами.

Где читать: на GitGuardian.

Все мы знаем, что с исходным кодом надо обращаться осторожно — чтобы не случилась утечка важной информации. Но есть и другие вещи, в которых надо проявлять бдительность и аккуратность, и одна из них — это Docker-образы. Именно на образах недавно погорели Codecov: в одном из них были данные от Git-аккаунта — хакеры использовали их, чтобы войти в закрытый репозиторий, и наворотили делов.

Проблем с безопасностью у образов несколько. Во-первых, в них содержится исходный код — причём из-за особенностей устройства образов вы можете этого не заметить во время проверок. Во-вторых, в них могут прятаться данные для авторизации и API-ключи (привет ребятам из Codecov). Ну и в-третьих, образы состоят из слоёв, что само по себе небезопасно: в одном слое может быть спрятана информация из предыдущего. А самое главное — никто их не проверяет так же тщательно, как исходный код.

Авторы статьи провели небольшое исследование на Docker Hub и попытались выяснить, сколько секретов скрывают в себе образы, а сколько — исходный код. В результате у них получилась сравнительная табличка: конечно, исходники лидируют, но и для образов результаты получились неутешительными — у 7% Docker-образов обнаружились какие-то недочёты.

Среда для работы с Data Science в Docker

Зачем читать: чтобы узнать, как использовать Docker в Data Science.

Где читать: на Refinitiv.

У Docker репутация инструмента для DevOps-инженеров, но этим его применение не ограничивается. Например, если вам интересна сфера Data Science, у Docker есть что вам предложить. А именно — практически готовое решение для разработки, Jupyter Docker Stacks. Это набор образов с приложениями Jupyter и множеством библиотек, которые устанавливаются буквально в пару кликов. Благодаря этому ваши коллеги смогут без проблем поставить точно такую же, уже преднастроенную среду — а это сэкономит немало нервов.

Конечно, это не волшебная пилюля: например, она не подойдёт любителям Eikon Data API, потому что плохо с ним совместима. Но если это не ваш случай, то в статье — целый гайд по тому, как работать с Jupyter Docker Stacks и как комбинировать его с самыми разными библиотеками, а ещё много ссылок на другие статьи по теме.

Как Docker помогает DL-специалистам

Зачем читать: чтобы узнать, как использовать Docker в Deep Learning и изучить полезные команды.

Где читать: на Medium.

Продолжая тему универсальности: Docker пригодится и в глубинном обучении. А именно — поможет организовать работу и сэкономить время.

В глубоком обучении очень важны среда и рабочее окружение. И Docker позволяет разворачивать нужную среду максимально быстро — как и в случае с Data Science: вам не придётся переживать, если вдруг понадобится перейти на новое устройство. Кроме того, у Docker хорошо построена работа с Git-репозиториями, системными файлами и GPU. А ещё тут есть изоляция контейнеров — отдельные процессы не повредят друг другу в случае неполадок.

Автор статьи подкрепил свои выводы примерами из практики и кейсами.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована