Как установить docker-контейнер

Рассказываем про контейнеризации и о том, как работать с Docker. Инструкция для чайников, решивших погрузиться в изучение популярной технологии виртуализации.

Что такое Docker?

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

Как установить docker-контейнер

Также Docker упрощает повторную развертку сервисов и приложений. С помощью него можно в один клик создать копию уже упакованного приложения и отправить его на другое устройство или на другой сервер, не переживая по поводу проблем совместимости или стабильности работы переносимого приложения. Также Docker можно использовать, чтобы создать дополнительные копии для новых пользователей программы.

Что такое Docker-контейнер?

Контейнеризация – это альтернативный метод создания виртуальных машин (компьютеров внутри компьютеров). С помощью контейнеров можно создавать виртуальные копии приложений и запускать их в одной системе так будто они работают на разных компьютерах. Таким образом можно на одном сервере организовать пространства с тысячами копий одной программы, которую бы могли использовать все желающие, подключившиеся к вашему серверу.

Процесс работы контейнеров устроен следующим образом:

  • Все компоненты, необходимые для запуска программы, помещаются в виртуальный блок.
  • Этот блок содержит в себе все необходимое для работы приложения.
  • Каждый блок можно инициализировать как капсулу, запускающую новую копию программы, хранящейся в виртуальном блоке.

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

Принципы работы Docker

В основе всей Docker-системы лежит утилита под названием Docker Engine. Это движок контейнеризации, включающий в себя сервер для хостинга контейнеров, а также REST API и клиент для доступа к контейнерам.

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

Работает эта система по тому же принципу, что и большая часть серверных приложений: пользователь отправляет сообщения через клиент, API их обрабатывает, а сервер управляет контейнерами.

Как установить docker-контейнер

По ходу работы Docker анализирует данные, записанные в конфигурационный файл Dockerfile, и выполняет операции, ориентируясь на параметры в Dockerfile.

Преимущества и недостатки Docker

Есть 5 ключевых преимуществ, из-за которых разработчики и администраторы выбирают Docker вместо традиционных виртуальных машин:

  1. Docker заметно экономит ресурсы хост-машины (сервера). Вместо того чтобы эмулировать полноценные операционные системы, Docker задействует только небольшое количество ключевых компонентов Linux и код, необходимый для запуска конкретной программы или функции.
  2. Docker экономит время администраторов и разработчиков. Не нужно настраивать с десяток виртуальных машин самостоятельно. Надо единожды создать и настроить контейнер в Docker, а уже его можно копировать на сотни и тысячи устройств.
  3. Контейнеризация защищает мини-виртуальные машины от вредоносного ПО. Docker-контейнеры изолированы от внешнего окружения, что автоматически делает их более безопасными для хост-системы.
  4. Docker помогает с масштабированием. Выросла нагрузка на конкретное приложение? Добавьте контейнеров. Масштабы проекта и его «выносливость» зависят исключительно от количества контейнеров.
  5. Docker дает отличные показатели производительности. В его работе задействуется специальный программный слой, позволяющий включить больше ресурсов наиболее эффективным образом.

Как настроить Docker

Это базовая инструкция по настройке Docker. Чтобы изучить принципы работы утилиты более углубленно, придется открыть официальную документацию.

Устанавливаем Docker вручную

Docker можно установить практически на любой хост с Unix-подобной операционной системой. Для этого:

Команды в инструкции работают на Debian и его сородичах в духе Ubuntu. Для Fedora и прочих дистрибутивах они не сработают.

  • Подключаемся к своему серверу через Secure Shell (можно использовать OpenSSH, встроенный в macOS и Linux, или установить утилиту PuTTY).
  • Обновляем операционную систему с помощью команды sudo apt-get update.
  • Загружаем пакеты curl, ca-certificates, api-transport-https и software-properties-common. Они нужны для передачи данных, проверки сертификатов безопасности, а также добавления в систему нужных скриптов для управления сторонним программным обеспечением.
  • Добавляем в список используемых репозиториев тот, что нужен для загрузки Docker с помощью команды: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -.
  • Потом вводим: sudo add-apt-repository «deb \[arch=amd64] https://download.docker.com/linux/ubuntu $(lsb\_release -cs) stable»
  • Теперь устанавливаем непосредственно Docker: sudo apt install docker-ce

На этом все. Docker установлен и готов к работе.

Выбираем хостинг с предустановленным Docker

Некоторые компании предлагают услуги по аренде инфраструктур в сети. Это хостинги с уже предустановленным ПО, которое не нужно настраивать. Вам предоставляется готовый код, то есть база для создания приложений, онлайн-сервисов, сайтов, баз данных и прочих технологий.

Есть сервисы в духе DigitalOcean, Azure, AWS, Oracle, Hostman и десятки других, позволяющие в пару кликов арендовать себе уже рабочий сервер с настроенным Docker.

В случае с Hostman – это работает следующим образом:

  • Вы создаете репозиторий с Dockerfile.
  • Подключаете его к хосту.
  • Выбираете технические характеристики сервера.
  • А потом публикуете проект в сети одним кликом.

Как взаимодействовать с Docker-контейнером?

На начальных этапах работы с Docker важно правильно его запустить. Стандартная команда включения утилиты для управления контейнерами не сработает, если не пробросить порты. Поэтому перед тем как запустить Docker, администратор сервера или DevOps-специалист должен ввести команду с указанием соответствующих портов. Например, так:

docker run -d -p 8009:8080 [название Docker-контейнера]

Эта команда открывает доступ к контейнерам с локальной машины.

Затем нужно найти образ с программным обеспечением (это может быть операционная система или конкретная программа), которое нам нужно инкапсулировать в Docker-контейнер. Вводим команду docker search [разыскиваемый образ]. Выгрузить образ к себе на сервер можно с помощью команды docker pull [точное название образа, который нужно скачать]. Для создания собственных образов используется команда docker create, а чтобы просмотреть список используемых образов, вводим docker images.

Чтобы получить доступ к конкретному контейнеру, нужно проделать следующее:

  • Открыть директорию, где лежит контейнер (на сервере).
  • Затем ввести команду docker container ls, чтобы в интерфейс командной строки отразились все существующие контейнеры.
  • Потом запустить команду docker exec -it [название контейнера]

Файл-менеджмент в Docker работает по тем же принципам, что и управление документами в Linux. Для копирования файлов используется команда cp.

Также в комплекте с Docker идет масса дополнительных утилит для получения информации о контейнере (например, docker inspect). Ознакомиться с ними можно в официальной документации Docker.

Вместо заключения

На этом все. Теперь вы знаете, как установить Docker на любой хостинг и загрузить в него образ операционной системы. Этого хватит для разработки базовых проектов и пробы пера, чтобы понять основы контейнеризации и ключевые принципы взаимодействия со стандартными утилитами, встроенными в Docker-клиент.

Hosting2go.ru