0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#подборки</a></p>
1
<p><a>#подборки</a></p>
2
<ul><li>10 ноя 2021</li>
2
<ul><li>10 ноя 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Как чаще всего ошибаются в работе с Docker, чем он полезен для Deep Learning и Data Science и какие у него проблемы с безопасностью.</p>
4
</ul><p>Как чаще всего ошибаются в работе с Docker, чем он полезен для Deep Learning и Data Science и какие у него проблемы с безопасностью.</p>
5
<p>chinahbzyg / shutterstock</p>
5
<p>chinahbzyg / shutterstock</p>
6
<p>В бэкграунде - программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.</p>
6
<p>В бэкграунде - программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.</p>
7
<p>Каждую неделю мы отбираем для вас несколько свежих материалов из англоязычного интернета. В этом выпуске - самые интересные статьи о Docker, платформе для работы с контейнерами.</p>
7
<p>Каждую неделю мы отбираем для вас несколько свежих материалов из англоязычного интернета. В этом выпуске - самые интересные статьи о Docker, платформе для работы с контейнерами.</p>
8
<p><strong>Зачем читать:</strong> чтобы узнать больше об устройстве Docker и Kubernetes и понять, стоит ли их вообще сравнивать.</p>
8
<p><strong>Зачем читать:</strong> чтобы узнать больше об устройстве Docker и Kubernetes и понять, стоит ли их вообще сравнивать.</p>
9
<p><strong>Где читать:</strong>на <a>Imaginary Cloud</a>.</p>
9
<p><strong>Где читать:</strong>на <a>Imaginary Cloud</a>.</p>
10
<p>Docker и Kubernetes - самые известные технологии для контейнеризации. Но что вообще такое контейнеризация? Это метод разработки, при котором код, все необходимые фреймворки и библиотеки работают в изолированном контейнере - независимой от внешнего мира среде. Благодаря этому приложения получаются надёжнее и мобильнее: они не привязаны к операционной системе, а неполадка в одной части не повлияет на работу остальных.</p>
10
<p>Docker и Kubernetes - самые известные технологии для контейнеризации. Но что вообще такое контейнеризация? Это метод разработки, при котором код, все необходимые фреймворки и библиотеки работают в изолированном контейнере - независимой от внешнего мира среде. Благодаря этому приложения получаются надёжнее и мобильнее: они не привязаны к операционной системе, а неполадка в одной части не повлияет на работу остальных.</p>
11
<p>Вернёмся к Docker и Kubernetes. Обе программы нужны для работы с контейнерами, но одна ли у них цель? И да и нет. Docker нужен в первую очередь для разработки и запуска контейнеров, в то время как Kubernetes - для их организации, автоматизации и масштабирования.</p>
11
<p>Вернёмся к Docker и Kubernetes. Обе программы нужны для работы с контейнерами, но одна ли у них цель? И да и нет. Docker нужен в первую очередь для разработки и запуска контейнеров, в то время как Kubernetes - для их организации, автоматизации и масштабирования.</p>
12
<p>Кстати, у Docker есть свой аналог k8s - Docker Swarm. Именно с ним будет корректно сравнивать Kubernetes, и, судя по звёздочкам на GitHub, Kubernetes пока уверенно побеждает. Выходит, что комбинировать его с Docker - это лучшее решение, а сами продукты скорее отлично дополняют друг друга, а не конкурируют.</p>
12
<p>Кстати, у Docker есть свой аналог k8s - Docker Swarm. Именно с ним будет корректно сравнивать Kubernetes, и, судя по звёздочкам на GitHub, Kubernetes пока уверенно побеждает. Выходит, что комбинировать его с Docker - это лучшее решение, а сами продукты скорее отлично дополняют друг друга, а не конкурируют.</p>
13
<p><strong>Зачем читать:</strong> чтобы узнать, куда не надо лезть и какие решения - самые эффективные.</p>
13
<p><strong>Зачем читать:</strong> чтобы узнать, куда не надо лезть и какие решения - самые эффективные.</p>
14
<p><strong>Где читать:</strong>на <a>CloudSavvyIT</a>.</p>
14
<p><strong>Где читать:</strong>на <a>CloudSavvyIT</a>.</p>
15
<p>Начать работу с Docker очень просто, но со временем вы заметите всё больше и больше нюансов. Вот топ самых распространённых ошибок, которые вполне могут усложнить жизнь и лишить ваши контейнеры светлого будущего:</p>
15
<p>Начать работу с Docker очень просто, но со временем вы заметите всё больше и больше нюансов. Вот топ самых распространённых ошибок, которые вполне могут усложнить жизнь и лишить ваши контейнеры светлого будущего:</p>
16
<ol><li><strong>Обновление пакетов прямо в контейнере.</strong>Файлы в контейнерах ведут себя не так, как в обычных виртуальных машинах: изменения теряются, если контейнер перестаёт работать, а потом воспроизводятся снова из Docker-файла. Поэтому, чтобы не вышло путаницы, лучше пересобрать Docker-образ и перезапустить весь контейнер, а не обновлять пакеты внутри него.</li>
16
<ol><li><strong>Обновление пакетов прямо в контейнере.</strong>Файлы в контейнерах ведут себя не так, как в обычных виртуальных машинах: изменения теряются, если контейнер перестаёт работать, а потом воспроизводятся снова из Docker-файла. Поэтому, чтобы не вышло путаницы, лучше пересобрать Docker-образ и перезапустить весь контейнер, а не обновлять пакеты внутри него.</li>
17
<li><strong>Несколько сервисов в одном контейнере.</strong>Суть контейнеров - в разделении. В идеале у каждого контейнера должна быть одна функция - так легче что-то поправить. Да и расширять проект - тоже.</li>
17
<li><strong>Несколько сервисов в одном контейнере.</strong>Суть контейнеров - в разделении. В идеале у каждого контейнера должна быть одна функция - так легче что-то поправить. Да и расширять проект - тоже.</li>
18
<li><strong>Побочные эффекты.</strong>Команда docker build не должна никак влиять на окружение. Её цель - это сборка образа. Будет совсем некстати, если она внезапно сделает что-то ещё.</li>
18
<li><strong>Побочные эффекты.</strong>Команда docker build не должна никак влиять на окружение. Её цель - это сборка образа. Будет совсем некстати, если она внезапно сделает что-то ещё.</li>
19
<li><strong>Слишком сложные Docker-файлы.</strong>Если файл выполняет сразу несколько разных функций, лучше разбить его на несколько файлов поменьше. Чем легче и минималистичнее файлы, тем проще с ними работать.</li>
19
<li><strong>Слишком сложные Docker-файлы.</strong>Если файл выполняет сразу несколько разных функций, лучше разбить его на несколько файлов поменьше. Чем легче и минималистичнее файлы, тем проще с ними работать.</li>
20
</ol><p>Ещё три ошибки - в оригинальной статье.</p>
20
</ol><p>Ещё три ошибки - в оригинальной статье.</p>
21
<p><strong>Зачем читать:</strong> чтобы узнать о правилах безопасной работы с образами.</p>
21
<p><strong>Зачем читать:</strong> чтобы узнать о правилах безопасной работы с образами.</p>
22
<p><strong>Где читать:</strong>на <a>GitGuardian</a>.</p>
22
<p><strong>Где читать:</strong>на <a>GitGuardian</a>.</p>
23
<p>Все мы знаем, что с исходным кодом надо обращаться осторожно - чтобы не случилась утечка важной информации. Но есть и другие вещи, в которых надо проявлять бдительность и аккуратность, и одна из них - это Docker-образы. Именно на образах недавно погорели Codecov: в одном из них были данные от Git-аккаунта - хакеры использовали их, чтобы войти в закрытый репозиторий, и наворотили делов.</p>
23
<p>Все мы знаем, что с исходным кодом надо обращаться осторожно - чтобы не случилась утечка важной информации. Но есть и другие вещи, в которых надо проявлять бдительность и аккуратность, и одна из них - это Docker-образы. Именно на образах недавно погорели Codecov: в одном из них были данные от Git-аккаунта - хакеры использовали их, чтобы войти в закрытый репозиторий, и наворотили делов.</p>
24
<p>Проблем с безопасностью у образов несколько. Во-первых, в них содержится исходный код - причём из-за особенностей устройства образов вы можете этого не заметить во время проверок. Во-вторых, в них могут прятаться данные для авторизации и API-ключи (привет ребятам из Codecov). Ну и в-третьих, образы состоят из слоёв, что само по себе небезопасно: в одном слое может быть спрятана информация из предыдущего. А самое главное - никто их не проверяет так же тщательно, как исходный код.</p>
24
<p>Проблем с безопасностью у образов несколько. Во-первых, в них содержится исходный код - причём из-за особенностей устройства образов вы можете этого не заметить во время проверок. Во-вторых, в них могут прятаться данные для авторизации и API-ключи (привет ребятам из Codecov). Ну и в-третьих, образы состоят из слоёв, что само по себе небезопасно: в одном слое может быть спрятана информация из предыдущего. А самое главное - никто их не проверяет так же тщательно, как исходный код.</p>
25
<p>Авторы статьи провели небольшое исследование на Docker Hub и попытались выяснить, сколько секретов скрывают в себе образы, а сколько - исходный код. В результате у них получилась сравнительная табличка: конечно, исходники лидируют, но и для образов результаты получились неутешительными -<strong>у 7% Docker-образов обнаружились какие-то недочёты</strong>.</p>
25
<p>Авторы статьи провели небольшое исследование на Docker Hub и попытались выяснить, сколько секретов скрывают в себе образы, а сколько - исходный код. В результате у них получилась сравнительная табличка: конечно, исходники лидируют, но и для образов результаты получились неутешительными -<strong>у 7% Docker-образов обнаружились какие-то недочёты</strong>.</p>
26
<p><strong>Зачем читать:</strong> чтобы узнать, как использовать Docker в Data Science.</p>
26
<p><strong>Зачем читать:</strong> чтобы узнать, как использовать Docker в Data Science.</p>
27
<p><strong>Где читать:</strong>на <a>Refinitiv</a>.</p>
27
<p><strong>Где читать:</strong>на <a>Refinitiv</a>.</p>
28
<p>У Docker репутация инструмента для DevOps-инженеров, но этим его применение не ограничивается. Например, если вам интересна сфера Data Science, у Docker есть что вам предложить. А именно - практически готовое решение для разработки, Jupyter Docker Stacks. Это набор образов с приложениями Jupyter и множеством библиотек, которые устанавливаются буквально в пару кликов. Благодаря этому ваши коллеги смогут без проблем поставить точно такую же, уже преднастроенную среду - а это сэкономит немало нервов.</p>
28
<p>У Docker репутация инструмента для DevOps-инженеров, но этим его применение не ограничивается. Например, если вам интересна сфера Data Science, у Docker есть что вам предложить. А именно - практически готовое решение для разработки, Jupyter Docker Stacks. Это набор образов с приложениями Jupyter и множеством библиотек, которые устанавливаются буквально в пару кликов. Благодаря этому ваши коллеги смогут без проблем поставить точно такую же, уже преднастроенную среду - а это сэкономит немало нервов.</p>
29
<p>Конечно, это не волшебная пилюля: например, она не подойдёт любителям Eikon Data API, потому что плохо с ним совместима. Но если это не ваш случай, то в статье - целый гайд по тому, как работать с Jupyter Docker Stacks и как комбинировать его с самыми разными библиотеками, а ещё много ссылок на другие статьи по теме.</p>
29
<p>Конечно, это не волшебная пилюля: например, она не подойдёт любителям Eikon Data API, потому что плохо с ним совместима. Но если это не ваш случай, то в статье - целый гайд по тому, как работать с Jupyter Docker Stacks и как комбинировать его с самыми разными библиотеками, а ещё много ссылок на другие статьи по теме.</p>
30
<p><strong>Зачем читать:</strong> чтобы узнать, как использовать Docker в Deep Learning и изучить полезные команды.</p>
30
<p><strong>Зачем читать:</strong> чтобы узнать, как использовать Docker в Deep Learning и изучить полезные команды.</p>
31
<p><strong>Где читать:</strong>на <a>Medium</a>.</p>
31
<p><strong>Где читать:</strong>на <a>Medium</a>.</p>
32
<p>Продолжая тему универсальности: Docker пригодится и в глубинном обучении. А именно - поможет организовать работу и сэкономить время.</p>
32
<p>Продолжая тему универсальности: Docker пригодится и в глубинном обучении. А именно - поможет организовать работу и сэкономить время.</p>
33
<p>В глубоком обучении очень важны среда и рабочее окружение. И Docker позволяет разворачивать нужную среду максимально быстро - как и в случае с Data Science: вам не придётся переживать, если вдруг понадобится перейти на новое устройство. Кроме того, у Docker хорошо построена работа с Git-репозиториями, системными файлами и GPU. А ещё тут есть изоляция контейнеров - отдельные процессы не повредят друг другу в случае неполадок.</p>
33
<p>В глубоком обучении очень важны среда и рабочее окружение. И Docker позволяет разворачивать нужную среду максимально быстро - как и в случае с Data Science: вам не придётся переживать, если вдруг понадобится перейти на новое устройство. Кроме того, у Docker хорошо построена работа с Git-репозиториями, системными файлами и GPU. А ещё тут есть изоляция контейнеров - отдельные процессы не повредят друг другу в случае неполадок.</p>
34
<p>Автор статьи подкрепил свои выводы примерами из практики и кейсами.</p>
34
<p>Автор статьи подкрепил свои выводы примерами из практики и кейсами.</p>
35
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
35
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>