Установка и настройка Docker в Ubuntu
Docker — программное обеспечение для облегчения создания, развертывания и запуска приложений. Разработчик может упаковать приложение и все его зависимости в изолированную среду. Managed Kubernetes помогает разворачивать контейнерные приложения в инфраструктуре Selectel. Сосредоточьтесь на разработке, а мы займемся рутинными операциями по обеспечению работы вашего кластера Kubernetes. Создавая аналогичную изолированную среду, Docker схож с виртуальным сервером. Однако, […]
Docker — программное обеспечение для облегчения создания, развертывания и запуска приложений. Разработчик может упаковать приложение и все его зависимости в изолированную среду.
Managed Kubernetes помогает разворачивать контейнерные приложения в инфраструктуре Selectel. Сосредоточьтесь на разработке, а мы займемся рутинными операциями по обеспечению работы вашего кластера Kubernetes.
Создавая аналогичную изолированную среду, Docker схож с виртуальным сервером. Однако, в случае с Docker, значительный прирост производительности дает то, что контейнеры, в отличие от виртуальных машин, используют общее ядро Linux, разделяя его ресурсы.
Еще один важный момент — Docker имеет открытый исходный код. Это означает отсутствие необходимости внесения оплаты за лицензии и большое комьюнити, в котором легко получить ответ на любой вопрос относительно работы Docker.
В этой статье мы разберемся с установкой Docker на операционную систему Ubuntu, создадим образ контейнера на Docker Hub и запустим собственный репозиторий. Также расскажем об утилите Docker Compose для работы с мультиконтейнерными приложениями.
Перед началом установки всех необходимых компонентов, подготовим сервер. Это будет облачный сервер с готовой конфигурацией.
В консоли управления Selectel перейдем в представление Облачная платформа и нажмем на кнопку Создать сервер.
На следующем представлении вводим имя сервера, выбираем образ операционной системы (в нашем случае это Ubuntu 18.04 LTS 64-bit) и фиксированную конфигурацию сервера с 1 vCPU и 2 ГБ RAM. Для тестовых целей будет достаточно диска с 10 ГБ. Еще раз проверяем конфигурацию сервера и нажимаем Создать.
Подождем минуту или две пока сервер не перейдет в состояние Active.
Теперь можем приступать к установке Docker. Поехали!
Docker: системные требования для установки
Один из компонентов окружения Docker — Docker Engine. Эти клиент-серверное приложение, которое обеспечивает следующие компоненты:
- серверная часть с процессом-демоном dockerd;
- API-интерфейсы, которые программы могут использовать для взаимодействия с демоном Docker;
- клиента интерфейса командной строки (CLI), вызываемый командой docker.
Docker Engine поставляется в виде .deb и .rpm пакетов и может быть установлен на любые дистрибутивы семейства Linux (CentOS, Debian, Fedora, Raspbian, Ubuntu). Также есть специальная утилита Docker Desktop, которая позволяет исполнять Docker Engine на операционных системах Windows и MacOS. В обоих случаях, все равно будет использоваться ядро Linux.
Установка Docker на Ubuntu
Чтобы установить Docker на Ubuntu, выполним подготовительные действия. Для начала, обновим состав установочных пакетов, чтобы иметь представление об их актуальных версиях:
sudo apt update
Предварительно установим набор пакетов, необходимый для доступа к репозиториям по протоколу HTTPS:
- apt-transport-https — активирует передачу файлов и данных через https;
- ca-сertificates — активирует проверку сертификаты безопасности;
- curl — утилита для обращения к веб-ресурсам;
- software-properties-common — активирует возможность использования скриптов для управления программным обеспечением.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Далее добавим в систему GPG-ключ для работы с официальным репозиторием Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Теперь добавим репозиторий Docker в локальный список репозиториев:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Повторно обновим данные о пакетах операционной системы:
sudo apt update
Приступаем к установке пакета Docker.
sudo apt install docker-ce -y
После завершения установки запустим демон Docker и добавим его в автозагрузку:
sudo systemctl start docker
sudo systemctl enable docker
На этом установка Docker завершена и можно начинать с ним работу.
Установка Docker Compose на Ubuntu
Docker Compose — это инструмент для описания и запуска мультиконтейнерных приложений Docker. Инструмент позволяет пользователям запускать, выполнять, общаться и закрывать контейнеры с помощью одной команды.
Посмотрим последнюю сборку Docker Compose в репозитории на Github и загрузим ее при помощи утилиты curl со следующими параметрами:
- –L разрешает редиректы, если файл перемещен;
- –o модифицирует имя файла для удобства его запуска и указывает каталог для сохранения.
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
После завершения загрузки, добавим загруженному бинарному файлу права на выполнение:
sudo chmod +x /usr/local/bin/docker-compose
Заметим, что выполнить установку Docker Compose можно было из репозитория Ubuntu командой sudo apt-get install docker-compose. Однако, в репозитории может быть не самая последняя версия. Способ, который мы описали выше, позволит загрузить актуальную версию утилиты Docker Compose.
Чтобы проверить корректность работы утилиты, выполним проверку ее версии:
sudo docker–compose –version
Если команда вернула номер версии, значит Docker Compose готов к работе.
Когда нужно удалить Docker Compose, достаточно выполнить команду удаления файла:
sudo rm /usr/local/bin/docker-compose
Если установка выполнялась через пакетный менеджер apt, нужно его вызвать с параметром purge:
sudo apt purge docker-compose
И следом удалить все невостребованные зависимости:
sudo apt autoremove
Команды Docker и работа с ним
Перед началом работы с Docker, нужно подготовить контейнер. Есть два пути: создать новый контейнер, описав его в Dockerfile или загрузить уже готовый из Docker Hub или другого репозитория. В этом разделе мы рассмотрим вариант создания собственного контейнера с нуля при помощи Dockerfile.
Dockerfile — это скрипт с инструкциями по созданию образа Docker. Эти инструкции представляют собой группу команд, автоматически выполняемых в среде Docker для создания определенного образа Docker.
Создадим новую директорию, перейдем в нее и создадим Dockerfile:
mkdir docker_images
cd docker_images
touch Dockerfile
Откроем Dockerfile и добавим в него несколько строк:
nano Dockerfile
FROM ubuntu MAINTAINER selectel RUN apt-get update CMD ["echo", "Hello World"]
- FROM определяет основу создаваемого изображения. Можно начать с родительского (как в примере выше) или базового образа. При использовании родительского образа вы используете существующий образ, на котором основан новый. Использование базового образа означает, что вы начинаете с нуля (именно так его и определяют: FROM scratch).
- MAINTAINER указывает автора образа. Здесь вы можете ввести ваше имя и/или фамилию (или добавить адрес электронной почты). Также сюда можно вписать инструкцию по добавлению метаданных (LABEL) к образу.
- RUN определяет инструкции по выполнению команды при построении образа в слоях поверх него. В этом примере система ищет обновления репозитория после начала сборки образа Docker. В Dockerfile может быть несколько инструкций RUN.
- CMD отвечает за значение команды по умолчанию, которая будет исполнено. Система выполнит ее, если вы запустите контейнер без указания команды. Внутри Dockerfile может быть только одна инструкция CMD.
Сохраним изменения и выйдем из режима редактирования. Теперь можно приступать к сборке контейнера. Для этого используем утилиту Docker. Базовый синтаксис выглядит так:
sudo docker build [OPTIONS] PATH | URL | -
Запустим утилиту с параметром -t, который указывает на имя образа. Это упростит управление образами, когда их станет несколько.
sudo docker build -t my_image .
После сборки образа, проверим, что он появился в локальном каталоге образов. Получим следующий вывод:
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE my_image latest 889af78121ad 4 seconds ago 100MB ubuntu latest 4dd97cefde62 2 weeks ago 72.9MB
Казалось бы мы создали только один образ. Откуда там появилось два? Все просто — мы создавали свой контейнер my_ubuntu на на базе образа ubuntu, поэтому вначале скачался образ ubuntu и лишь потом был создан my_image.
Запустим новый контейнер Docker на основе образа, созданного на предыдущих шагах. Назовем контейнер «test» и получим вывод «Hello world» в результате выполнения команды docker run. Ubuntu, CentOS или Debian — операционная система значения не имеет, синтаксис везде будет одинаковый.
sudo docker run --name test my_image
Hello World
После выключения контейнера, все данные, которые он генерировал за время работы удаляются. Чтобы этого не происходило, предусмотрена возможность монтирования внешних хранилищ. Docker автоматически создает каталог /var/lib/docker/volume, в который можно сохранять данные на постоянной основе и совместно их использовать между несколькими контейнерами. Создадим новое хранилище с именем «selectel»:
sudo docker volume create selectel
Теперь запустим контейнер с примонтированным внешним хранилищем:
sudo docker run --name=test --mount source=selectel,destination=/selectel my_image
Таким образом, все данные, которые появятся в директории /selectel внутри контейнера будут надежно храниться на файловой системе сервера.
Контейнеры Docker предназначены для обеспечения изолированной среды со всеми библиотеками и конфигурациями, необходимыми для работы программного обеспечения. Во время разработки их количество может хаотично, в результате появятся устаревшие и неиспользуемые контейнеры. Ниже мы покажем как удалить ненужные контейнеры.
Предварительно выведем в терминал запущенные контейнеры:
sudo docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b52480dd6110 my_image "echo 'Hello World'" 4 minutes ago Exited (0) 4 minutes ago test
Увидим контейнер, который мы только что запустили. Еще один вариант получить список запущенных контейнеров — добавить параметр -a. Так мы увидим список id контейнеров:
sudo docker container ls –aq
b52480dd6110
Можно остановить один контейнер:
sudo docker container stop [container_id]
А можно все разом:
sudo docker container stop $(docker container ls –aq)
Чтобы очистить все данные, созданные контейнером, можно выполнить следующую команду:
sudo docker container stop $(docker container ls –aq) && docker system prune –af ––volumes
Команда выполняет остановку контейнеров, перечисленных в круглых скобках. Атрибут && предписывает Docker удалить все остановленные контейнеры и тома. Параметры –af указывает, что это должно применяться ко всем контейнерам (a) без необходимости подтверждения (f).
А теперь удалим контейнер. Один или все сразу:
sudo docker container rm [container_id]
sudo docker container rm $(docker container ls –aq)
При удалении ненужных контейнеров можно также задавать фильтры. Например, в примере ниже мы удалим все контейнеры без метки мейнтейнера «selectel».
sudo docker container prune --filter=”label!=maintainer=selectel”
Фильтры имеют следующий синтаксис:
Образы Docker — это файлы, которые включают несколько слоев, используемых для запуска кода в контейнере. В процессе разработки некоторые образы могут устаревать и, соответственно, занимать место на диске. Посмотрим какие образы сейчас находятся на файловой системе:
sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE my_image latest 889af78121ad 24 hours ago 100MB ubuntu latest 4dd97cefde62 2 weeks ago 72.9MB
Чтобы удалить неиспользуемые образы, нужно воспользоваться их идентификатором из колонки IMAGE ID.
docker image rm [image_id1] [image_id2]
Аналогичным контейнерам образом, удаляемые образы можно фильтровать по меткам или по дате создания. Первая команда удаляет образы с меткой «selectel», а вторая все образы, созданные за последние 24 часа.
sudo docker image prune ––filter=”label=selectel”
sudo docker image prune –a ––filter “until=24h”
Так как контейнеры после остановки не сохраняют внутри себя никакие данные. Например, если в контейнере работала база данных и там за время работы контейнера были созданы объекты и данные, после остановки они пропадут. Для этого, к контейнеру монтируются каталоги, расположенные, непосредственно на диске операционной системы. Чтобы просмотреть все такие каталоги, выполним команду:
sudo docker volume ls
Чтобы удалить ненужные разделы Docker, воспользуемся командой:
sudo docker volume rm [VolumeName]
Сети Docker позволяют различным контейнерам свободно обмениваться данными друг с другом, а также изолировать этот трафик. Обычно это делается с помощью сетевого моста Docker. Чтобы посмотреть все имеющиеся сети, выполним:
sudo docker network ls
NETWORK ID NAME DRIVER SCOPE 1e31297e1d6a bridge bridge local 783575476ed4 host host local c7c5d2496494 none null local
Чтобы удалить ненужные сети Docker, воспользуемся командой:
sudo docker network rm [networkID]
Команда prune автоматически удаляет все ресурсы, не связанные с контейнером. Это упрощенный способ очистки неиспользуемых образов, контейнеров, томов и сетей.
sudo docker system prune
Можно использовать дополнительные параметры:
- -a — для удаления всех остановленных контейнеров и неиспользуемых образов.
- -f — Обойти диалоговое окно подтверждения
- —volumes — Удаляет все неиспользуемые тома.
Эту команду также можно использовать точечно для контейнеров, образов, дисковых разделов и сетей:
sudo docker container prune
sudo docker image prune
sudo docker volume prune
sudo docker network prune
Можно использовать дополнительный параметр -a, в этом случае удаляются неиспользуемые и зависшие объекты.
Работа с репозиторием Docker Hub
Docker Hub — это общедоступный репозиторий образов контейнеров Docker. Каждый раз когда вы создаете собственный контейнер (в примере выше мы делали контейнер на основе операционной системе Ubuntu), с Docker Hub загружается соответствующий образ. Но образы можно не только загружать, но и выгружать. В этом разделе мы расскажем как это сделать.
Прежде чем начать, понадобится учетная запись на Docker Hub. Регистрация бесплатная. Сейчас в нашем тестовом окружении на Docker Hub нет ни одного репозитория. Прежде чем начинать выгрузку создадим один с помощью кнопки Create Repository.
В командной строке введем специальную команду для подключения к Docker Hub. На вход подадим имя учетной записи, которое указывали при регистрации. Затем укажем пароль.
sudo docker login -u [docker-hub-username]
Осталось выгрузить образ в репозиторий. Установим образу метку, а затем зальем его в репозиторий.
sudo docker tag my_image [docker-hub-username]/my_image:0.0.1
sudo docker push [docker-hub-username]/my_image:0.0.1
The push refers to repository [docker.io/[docker-hub-username]/my_image] 8c25b6d14dcf: Pushed c20d459170d8: Pushed db978cae6a05: Pushed aeb3f02e9374: Pushed 0.0.1: digest: sha256: size: 1155
В результате, образ появится в репозитории.
Работа с частным репозиторием
Частный репозиторий — это аналог Docker Hub, только находиться он будет в окружении под вашим управлением.
Запустим локальный репозиторий в контейнере:
docker run -d -p 5000:5000 --restart=always --name registry registry:2
Теперь добавим специальный тег к образу, добавляем созданный образ my_image в репозиторий и для проверки получаем его обратно:
docker tag my_image localhost:5000/my_image
docker push localhost:5000/my_image
docker pull localhost:5000/my_image
Частный репозиторий готов к работе.
Заключение
В статье мы рассмотрели работу с контейнерами на основе Docker, их создание, удаление и размещение в Docker Hub и локальном репозитории. Docker сильно упрощает работу разработчиков и системных администраторов. Легковесные контейнеры потребляют меньшее количество ресурсов (в отличие от виртуальных машин) и полноценно готовы к работе за считанные минуты.
Что такое Docker Compose и как его установить
Docker Compose — инструмент для определения и управления многоконтейнерными приложениями на платформе Docker. Он позволяет объединять несколько контейнеров вместе и определять все необходимые настройки, зависимости и связи между ними в файле конфигурации.
Что позволяет Docker Compose?
С использованием Docker Compose вы можете определить и запустить сложные приложения, состоящие из нескольких сервисов или компонентов, каждый из которых будет работать в своем собственном контейнере Docker.
Docker Compose позволяет легко масштабировать, управлять и взаимодействовать между контейнерами в рамках одной среды. Основные преимущества его использования:
- простоту определения и управления сложными приложениями, состоящими из нескольких контейнеров.
- возможность определить зависимости и связи между контейнерами, чтобы легко управлять порядком запуска и остановки сервисов
- автоматическое масштабирование и распределение сервисов внутри контейнеров.
- удобную работу с переменными окружения и настройками контейнеров.
Docker Compose использует файл YAML для определения контейнеров, их настроек, переменных окружения, сетей и других параметров. Этот файл можно легко понять и редактировать.
Как установить Docker Compose
Для установки Docker Compose в Linux необходимо выполнить простые шаги.
Docker Compose требует наличия Docker Engine на вашей системе. Если у вас уже установлен Docker Engine, можете перейти к следующему шагу. Если же у вас нет Docker Engine, выполните команды:
Обновите индекс пакетов:
sudo apt update
Установите пакеты, необходимые для добавления новых репозиториев через HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Добавьте официальный GPG-ключ Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Установите стабильный репозиторий Docker:
echo «deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable» | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновите индекс пакетов снова:
sudo apt update
Установите Docker Engine и его зависимости:
sudo apt install docker-ce docker-ce-cli containerd.io
Убедитесь, что сервис Docker запущен:
sudo systemctl start docker
Добавьте текущего пользователя в группу docker, чтобы запускать команды Docker без использования sudo:
sudo usermod -aG docker $USER
После этого перезапустите систему или выйдите из текущей сессии и снова войдите.
Установка Docker Compose
Сначала установите зависимости для Docker Compose:
sudo apt install libffi-dev libssl-dev
sudo apt install python3 python3-pip
sudo apt install -y python3-dev
sudo apt remove docker-compose
sudo pip3 uninstall docker-compose
Установите Docker Compose с помощью pip3:
sudo pip3 install docker-compose
Проверьте, что Docker Compose успешно установлен:
docker-compose —version
Вы должны увидеть сообщение, указывающее версию установленного Docker Compose.
Теперь Docker Compose должен быть успешно установлен на вашей системе Linux. Вы можете использовать его для управления многоконтейнерными приложениями на Docker.
Изучаем Docker, часть 2: термины и концепции
В первой части перевода серии материалов, посвящённых Docker, мы сделали общий обзор этой системы. В частности, мы говорили о том, почему технологии контейнеризации важны в наше время, о том, что такое контейнеры Docker, и о том, с чем их можно сравнить. Сегодня мы поговорим об экосистеме Docker и рассмотрим важные термины, с которыми вы можете столкнуться на пути изучения и использования Docker. Продолжив аналогию с разными вкусностями, представим, что наши термины — это пончики. Дюжина пончиков.
Термины экосистемы Docker
Я разбил термины, с которыми вы можете столкнуться в ходе работы с Docker, на две части. Думаю, это облегчит их запоминание. Первый блок терминов будет относиться к механизмам Docker. Второй — к средствам масштабирования решений, основанных на контейнерах.
Механизмы Docker
▍Платформа Docker
Платформа Docker (Docker Platform) — это программа, которая даёт нам возможность упаковывать приложения в контейнеры и запускать их на серверах. Платформа Docker позволяет помещать в контейнеры код и его зависимости. Как результат, системы, основанные на контейнерах, легко масштабировать, так как контейнеры можно переносить и воспроизводить.
▍Движок Docker
Движок Docker (Docker Engine) — это клиент-серверное приложение. Компания Docker разделила движок Docker на два продукта. Docker Community Edition (CE) — это бесплатное ПО, во многом основанное на опенсорсных инструментах.
Вероятно, вы будете пользоваться именно этой версией Docker. Docker Enterprise — это платная версия системы, дающая пользователям дополнительные возможности в области поддержки систем, управления ими и безопасности. Платная версия Docker даёт компании средства, необходимые для её существования.
▍Клиент Docker
Клиент Docker и другие механизмы экосистемы (взято из документации)
Клиент Docker (Docker Client) — это основное средство, которое используют для взаимодействия с Docker. Так, при работе с интерфейсом командной строки Docker (Docker Command Line Interface, CLI), в терминал вводят команды, начинающиеся с ключевого слова docker , обращаясь к клиенту. Затем клиент использует API Docker для отправки команд демону Docker.
▍Демон Docker
Демон Docker (Docker Daemon) — это сервер Docker, который ожидает запросов к API Docker. Демон Docker управляет образами, контейнерами, сетями и томами.
▍Тома Docker
Тома Docker (Docker Volumes) представляют собой наиболее предпочтительный механизм постоянного хранения данных, потребляемых или производимых приложениями.
▍Реестр Docker
Реестр Docker (Docker Registry) представляет собой удалённую платформу, используемую для хранения образов Docker. В ходе работы с Docker образы отправляют в реестр и загружают из него. Подобный реестр может быть организован тем, кто пользуется Docker. Кроме того, поставщики облачных услуг могут поддерживать и собственные реестры. Например, это касается AWS и Google Cloud.
▍Хаб Docker
Хаб Docker (Docker Hub) — это самый крупный реестр образов Docker. Кроме того, именно этот реестр используется при работе с Docker по умолчанию. Пользоваться хабом Docker можно бесплатно.
▍Репозиторий Docker
Репозиторием Docker (Docker Repository) называют набор образов Docker, обладающих одинаковыми именами и разными тегами. Теги — это идентификаторы образов.
Обычно в репозиториях хранятся разные версии одних и тех же образов. Например, Python — это имя популярнейшего официального репозитория Docker на хабе Docker. А вот Python:3.7-slim — это версия образа с тегом 3.7-slim в репозитории Python. В реестр можно отправить как целый репозиторий, так и отдельный образ.
Теперь поговорим о терминах экосистемы Docker, имеющих отношение к масштабированию.
Масштабирование решений, основанных на контейнерах
Следующие четыре термина имеют отношение к одновременному использованию нескольких контейнеров.
▍Сеть Docker
Сеть Docker (взято из документации)
Сетевые механизмы Docker (Docker Networking) позволяют организовывать связь между контейнерами Docker. Соединённые с помощью сети контейнеры могут выполняться на одном и том же хосте или на разных хостах. Подробности о сетевой подсистеме Docker можно почитать здесь.
▍Docker Compose
Docker Compose — это инструмент, который упрощает развёртывание приложений, для работы которых требуется несколько контейнеров Docker. Docker Compose позволяет выполнять команды, описываемые в файле docker-compose.yml . Эти команды можно выполнять столько раз, сколько потребуется. Интерфейс командной строки Docker Compose упрощает взаимодействие с многоконтейнерными приложениями. Этот инструмент устанавливается при установке Docker.
▍Docker Swarm
Docker Swarm — это решение, предназначенное для управления контейнерными развёртываниями (то есть, как говорят, для оркестрации контейнеров). В этом материале из официального учебного курса по Docker можно найти сведения о Docker Swarm. Мне хотелось бы порекомендовать вам не тратить время на изучение Docker Swarm в том случае, если у вас нет на то веской причины.
▍Сервисы Docker
Сервисы Docker (Docker Services) — это различные части распределённого приложения. Вот что о них говорится в документации:
Сервисы — это всего лишь «контейнеры в продакшне». В пределах сервиса выполняется лишь один образ, но сервис определяет то, как именно выполняется образ. В частности, речь идёт о том, какие порты должны использоваться, сколько реплик контейнера должно выполняться для того, чтобы сервис обеспечивал бы необходимую вычислительную мощность, и так далее. Масштабирование сервисов предусматривает изменение количества экземпляров контейнера, в которых работает некая программа, благодаря чему сервису выделяется столько системных ресурсов, сколько ему требуется для решения некоей задачи.
Сервисы Docker позволяют масштабировать контейнеры в пределах нескольких демонов Docker, благодаря им существует и технология Docker Swarm.
Краткий перечень терминов
Давайте, буквально в двух словах, повторим только что представленные вам термины:
- Платформа Docker — ПО, благодаря которому можно работать с контейнерами.
- Движок Docker — клиент-серверное приложение (CE или Enterprise).
- Клиент Docker — программа, которая позволяет взаимодействовать с демоном Docker посредством CLI.
- Демон Docker — сервер Docker, отвечающий за управление ключевыми механизмами системы.
- Тома Docker — хранилище информации, используемое в контейнерах.
- Реестр Docker — удалённое хранилище образов.
- Хаб Docker — самый крупный реестр Docker, используемый по умолчанию.
- Репозиторий — коллекция образов Docker с одним и тем же именем.
- Сетевая подсистема Docker — среда, которая позволяет организовывать взаимодействие контейнеров.
- Docker Compose — технология, упрощающая работу с многоконтейнерными приложениями.
- Docker Swarm — средство для управления развёртыванием контейнеров.
- Сервисы Docker — контейнеры в продакшне.
Вот, на всякий случай, ещё один пончик
Этот термин относится не к самой платформе Docker, а к технологии, которая очень часто используется совместно с Docker.
Kubernetes
Kubernetes — это технология, которая позволяет автоматизировать развёртывание и масштабирование контейнеризированных приложений, а также управление ими. Это — бесспорный лидер рынка средств для оркестрации контейнеров. Если вам нужен инструмент для работы с группами контейнеров, для масштабирования решений, основанных на них, используйте не Docker Swarm, а Kubernetes. Kubernetes не является частью Docker. Они с Docker, скорее, похожи на лучших друзей.
Теперь, когда вы ознакомились с общими понятиями Docker и с терминологией, вы можете приступить к практическим экспериментам.
Итоги: печём пончики с Docker
Помните, как в прошлый раз мы сравнивали платформу Docker с духовкой, которую устанавливают в кухне? Сейчас самое время установить Docker на вашей «кухне» и что-нибудь приготовить.
Docker можно запускать локально на Linux, Mac и Windows. Если вы пользуетесь Mac или Windows, вы можете установить свежую версию Docker Desktop отсюда. Вместе с этой программой, кстати, устанавливается и Kubernetes. Если вы устанавливаете Docker на другой платформе, то загляните сюда для того, чтобы найти подходящую версию.
После установки Docker взгляните на первые две части официального руководства.
В следующий раз мы продолжим разговор о Docker. В частности, поговорим о файлах Dockerfile.
Уважаемые читатели! Если, читая материалы этой серии, вы открываете для себя Docker, просим рассказать о том, как вы планируете использовать технологии контейнеризации приложений.
В чем разница между версиями Docker, и какую мне ставить?
В чём между ними разница? Какую мне лучше установить?
Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 5 фев 2018 в 11:05
Medvedev Alexandr Medvedev Alexandr
145 1 1 серебряный знак 10 10 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
docker-engine и docker.io это устаревшие версии.
На данный момент актуальные версии это платная корпоративная версия (EE — Enterprise Edition) и бесплатная комьюнити-версия (CE — Сommunity Edition).
Собственно docker-ce это бесплатная актуальная версия и устанавливать следует ее.
Если уже были установлены старые пакеты, то желательно удалить их перед установкой.
Удаление старых версий и установка новой:
Отслеживать
ответ дан 5 фев 2018 в 11:14
2,018 1 1 золотой знак 12 12 серебряных знаков 22 22 бронзовых знака
Бесплатную версию можно юзать в коммерческом ПО? Какие плюхи в коммерческой версии?
19 окт 2020 в 9:20
@doox911 docker-ce OpenSource под лицензией Apache-2.0 . Можно использовать в коммерческом ПО, а так же изменять и распространять, но необходимо указывать авторство. Возможно есть какие-то юридические подводные камни, но в целом лицензия позволяет. С точки зрения основного функционала коммерческая версия ничем не отличается. Разница в том, что коммерческая версия включает в себя поддержку и сертифицированные решения, например: сканер уязвимостей, LDAP/AD управление доступом с ролями и т.д. Более подробное сравнение по ссылке
20 окт 2020 в 12:08