Докер: все о контейнерах

Логотип Docker: Кит с грузом

Как вы, вероятно, знаете, существует несколько типов виртуализации, одним из которых является виртуализация на уровне операционной системы. Одним из наиболее известных проектов в этой области является Docker, наряду с другими проектами с открытым исходным кодом, такими как OpenVZ, LXC/LXD, Linux-VServer и т. д., или проприетарным программным обеспечением Virtuozzo. Если вы знакомы с этой областью или являетесь постоянным читателем подобных блогов, вы уже знаете о проекте, логотипом которого является кит (отсюда и название для тех, кто не знаком), и вы, вероятно, заметили, как в последние годы экспоненциально возросло его присутствие в СМИ и интерес к нему.

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

Докер и контейнеры:

РанчерОС

Хотя ответ несколько сложнее и потребует нескольких статей, я постараюсь его кратко изложить. Однако, если вам нужно узнать больше об этом замечательном проекте, есть несколько отличных книг, например, книга Альберто Гонсалеса, нынешнего консультанта по облачным технологиям в Red Hat. Это практическое руководство, которое можно приобрести по доступной цене на Amazon и Agapea . Итак, давайте разберемся, что такое Docker.

Всем известно, что контейнеры стали мощным инструментом в Linux, и их можно внедрять и управлять ими с помощью программного обеспечения Docker. Контейнеры — это просто изолированные «ящики», содержащие только самое необходимое для запуска конкретной программы или приложения. Представьте их как облегченные виртуальные машины, в отличие от больших, ресурсоемких виртуальных машин, используемых в полной виртуализации. Такое сокращение приводит к снижению накладных расходов.

Контейнеры предлагают облегченную конструкцию, портативность, автономность и гибкость, высоко ценимые разработчиками. Все это благодаря LXC, нашему любимому ядру Linux и самому проекту Docker с его контейнерами, образами и репозиториями. Эти преимущества привели к его успеху, о чем свидетельствует участие таких гигантов индустрии, как Google, Red Hat, IBM и Microsoft, а также его широкое распространение и положительные отзывы в крупных компаниях и облачных сервисах, которыми мы все пользуемся ежедневно (AWS, Digital Ocean и др.).

Пошагово устанавливаем Docker:

Веб-интерфейс Docker Cloud

У вас есть несколько вариантов установки Docker : от получения архива с исходным кодом и его компиляции до получения бинарных файлов из различных репозиториев и управления ими с помощью менеджеров пакетов вашего дистрибутива (openSUSE, Ubuntu, Debian, CentOS, Fedora и т. д.). Бинарные пакеты могут быть удобнее, но чтобы не затягивать объяснение, я расскажу о более прямом и универсальном методе, который работает в любом дистрибутиве:

sudo curl -fsSL https://get.docker.com/ | sh

Всё очень просто. Теперь у нас есть демон и клиент ; последний будет взаимодействовать с демоном Docker и позволит нам делать всё, что предлагает это программное обеспечение. Но ещё кое-что нужно сделать: запустить службу, то есть инициализировать демон Docker. Для systemd это можно сделать следующим образом:

sudo systemctl enable docker

sudo systemctl start docker

Если всё прошло успешно, то теперь всё должно быть активно . Проверить это можно с помощью:

sudo systemctl status docker

Мы можем начать использовать его сейчас ...

Первые шаги: создание контейнера

Схема контейнера

Итак, как вы знаете, контейнер — это пакет, содержащий всё необходимое для запуска одного или нескольких приложений; он похож на виртуальную машину, но легче, поскольку зависит от хоста для выполнения. Для функционирования контейнера необходимы необходимые библиотеки для выполнения, а также определённые зависимости, такие как некоторые инструменты операционной системы. Конечно, ещё одним необходимым компонентом является среда выполнения, которая включает, например, интерпретаторы для интерпретируемых языков, JVM, файлы кода или бинарные файлы и так далее.

Для работы с Docker-контейнером вы будете использовать несколько основных команд ; их довольно много, включая info, insert, kill, stop, start, build, ps и т. д. Чтобы увидеть все команды и их назначение, просто выполните:

docker

Для получения более подробной информации вы можете обратиться к официальной документации.

Как создать контейнер с помощью Docker ? Давайте рассмотрим пример. Мы собираемся создать контейнер с Ubuntu, и для этого воспользуемся командой `run`, которая позволяет как создавать, так и запускать контейнеры (подробнее: `run -h` ):

docker run -i -t ubuntu /bin/echo Prueba contenedor

Если образ уже есть, будет использован локальный образ, или он будет загружен, если его не удастся найти. Также будет создан контейнер , выделено место для новой файловой системы и выполнено монтирование. Конечно, будет назначен сетевой интерфейс для связи между гостевой и хост-системой. После завершения отобразится сообщение с фразой " Test container ", которую мы ввели.

Все имеющиеся у вас изображения можно просмотреть с помощью:

docker images

Для запуска контейнера можно использовать его идентификатор:

docker start -a <pon-la-ID-del-container>

Чтобы остановить их, вместо команды start можно использовать команду stop:

docker stop <pon-la-ID-del-container>

И это лишь самый минимум знаний о Docker. Надеюсь, это помогло вам начать и сделать первые шаги, ведь это может открыть перед вами целый мир возможностей. Как видите, это очень обширная тема, и вы можете углубиться в неё, начав с этого руководства или приобретя дополнительные книги, такие как упомянутая в первых абзацах, которую я рекомендую за её понятные и практичные объяснения. Не забудьте оставить свои комментарии


Добавить в качестве предпочтительного источника в Google