Установите Docker Engine и Docker Compose в Ubuntu
Пошаговое руководство по установке Docker Engine с помощью Docker Compose в Ubuntu
В этом руководстве мы увидим, что такое Docker, как установить Docker Engine в Ubuntu Linux. Кроме того, мы также увидим, как установить Docker Compose, инструмент для определения и запуска многоконтейнерных приложений Docker.
Это руководство было официально протестировано на Ubuntu 22.04 LTS. Однако он должен работать в более старых версиях, таких как 20.04 LTS и 18.04 LTS. Для большей безопасности и стабильности я рекомендую вам использовать самую последнюю версию Ubuntu 22.04 LTS.
Что такое Докер?
Docker — это быстрая, легкая технология виртуализации на уровне ОС для разработчиков и системных администраторов, которые хотят создать приложение со всеми необходимыми зависимостями и отправить его в виде одного пакета.
В отличие от других методов виртуализации, таких как VMWare, Xen и VirtualBox, для каждой виртуальной машины не требуется отдельная гостевая операционная система.
Все контейнеры Docker эффективно используют ядро операционной системы хоста. Каждый контейнер будет работать в изолированном пользовательском пространстве в той же операционной системе.
Контейнеры Docker также будут работать в любом варианте Linux. Допустим, вы работаете в Fedora, а я использую Ubuntu. Мы по-прежнему можем разрабатывать, делиться и распространять образы Docker друг с другом.
Вам не нужно беспокоиться об ОС, программном обеспечении, индивидуальных настройках или чем-либо еще. Мы можем продолжать разработку, пока в нашей хост-системе установлен Docker. Проще говоря, Docker будет работать везде!
В приведенных выше абзацах вы прочитали два термина, а именно: Образы Docker и Контейнеры Docker. Вы можете задаться вопросом, что это такое и в чем разница между ними.
С точки зрения непрофессионала, образ Docker — это файл, который описывает, как должен вести себя контейнер, тогда как контейнер Docker — это запущенное (или остановленное) состояние образа Docker.
Надеюсь, вы получили базовое представление о Docker. Более подробную информацию можно найти в официальном руководстве пользователя Docker. Ссылка прикреплена в конце этого руководства.
Требования к докеру
Чтобы установить и настроить Docker, ваша система должна соответствовать следующим минимальным требованиям.
- 64-разрядная операционная система Linux или Windows.
- Если вы используете Linux, версия ядра должна быть 3.10 или выше.
- Учетная запись пользователя с привилегиями
sudo
. - В BIOS вашей системы включена поддержка VT (технологии виртуализации). [Читайте: Как узнать, поддерживает ли процессор технологию виртуализации (VT)]
- Ваша система должна быть подключена к Интернету.
В Linux, чтобы проверить детали ядра и архитектуры, выполните следующую команду из терминала:
uname -a
Пример вывода:
Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux
Как видно из приведенного выше вывода, версия ядра моей системы Ubuntu — 5.15.35-3-pve , а архитектура моей системы Ubuntu — 64-битная (x86_64 x86_64 x86_64 GNU/Linux). Проверьте жирные буквы в приведенном выше результате.
Внимание: Здесь я использую контейнер Ubuntu 22.04 в Proxmox. Вот почему вы видите слово «pve» в версии ядра в приведенном выше выводе. Если вы используете физическую (или виртуальную) машину Ubuntu, вы увидите 5.15.35-3-generic в качестве версии ядра.
Ну версия ядра выше минимального требования, а арка 64 битная. Итак, мы можем без проблем установить и использовать Docker.
Обратите внимание: не имеет значения, какую ОС Ubuntu вы используете. Кроме того, не имеет значения, используете ли вы версию Ubuntu Desktop или Ubuntu Server или любые другие варианты Ubuntu, такие как Lubuntu, Kubuntu, Xubuntu.
Docker будет работать нормально, если в вашей системе установлено ядро версии 3.10+, а ваша система — 64-битная.
Установите Docker в Ubuntu 22.04 LTS
Прежде всего, обновите свою систему Ubuntu.
1. Обновите Ubuntu
Откройте терминал и выполните одну за другой следующие команды:
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
2. Добавьте репозиторий Docker.
Прежде всего установите необходимые сертификаты и разрешите менеджеру пакетов apt использовать репозиторий через HTTPS с помощью команды:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
Затем добавьте официальный ключ 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=$(dpkg --print-architecture) 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
Обновите список источников Ubuntu с помощью команды:
sudo apt update
3. Установите Докер
Наконец, выполните следующую команду, чтобы установить последнюю версию Docker CE на сервере Ubuntu 22.04 LTS:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Установите Docker в Ubuntu
Конечно, вы также можете установить определенную версию Docker. Чтобы проверить список доступных версий Docker, запустите:
apt-cache madison docker-ce
Пример вывода:
docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
Вы можете выбрать любую доступную версию из приведенного выше списка и установить ее. Например, чтобы установить версию 5:20.10.16~3-0~ubuntu-jammy, выполните:
sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io
После установки проверьте, запущена ли служба Docker, с помощью команды:
systemctl status docker
Вы увидите результат, подобный приведенному ниже.
* docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago
TriggeredBy: * docker.socket
Docs: https://docs.docker.com
Main PID: 2208 (dockerd)
Tasks: 8
Memory: 29.6M
CPU: 126ms
CGroup: /system.slice/docker.service
`-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" >
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start."
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done."
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization"
Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine.
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock"
Большой! Сервис Docker запущен и работает!
Если он еще не запущен, выполните следующую команду, чтобы запустить службу Docker.
sudo systemctl start docker
Включите службу Docker для автоматического запуска при каждой перезагрузке:
sudo systemctl enable docker
Установленную версию Docker можно найти с помощью команды:
sudo docker version
Пример вывода:
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:02:46 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:00:51 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Проверьте версию Докера
4. Тестирование Докера
Давайте продолжим и проверим, работает ли Docker или нет.
Для этого запустите:
sudo docker run hello-world
Приведенная выше команда загрузит тестовый образ Docker и выполнит пример программы hello_world внутри контейнера.
Если вы видите результат, подобный приведенному ниже, поздравляем! Docker отлично работает в нашей системе Ubuntu.
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Запуск Docker-контейнера Hello World
Большой! Докер готов к использованию.
Я установил Docker, и что дальше? Прочтите следующую статью этой серии, чтобы изучить основы Docker.
Начало работы с Docker
5. Обновите Докер
Чтобы обновить движок Docker до последней доступной версии, просто выполните:
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
6. Запустите Docker от имени пользователя без полномочий root в Linux (необязательно)
По умолчанию демон Docker привязывается к сокету Unix, а не к TCP-порту. Поскольку этот сокет Unix принадлежит пользователю root, демон Docker будет запускаться только от имени пользователя root. Следовательно, обычные пользователи не могут выполнять большинство команд Docker.
Если вы хотите запустить Docker в Linux от имени пользователя без полномочий root, обратитесь к следующему руководству:
Как запустить Docker от имени пользователя без полномочий root в Linux
Лично я этим не пользуюсь и не рекомендую. Если вы не подключаете свою систему к Интернету, все в порядке. Однако не запускайте Docker в производственной системе от имени пользователя без полномочий root.
Установите Docker Compose в Ubuntu
Docker Compose — это инструмент, который можно использовать для определения и запуска многоконтейнерных приложений Docker. Используя Compose, вы используете файл Compose для настройки служб вашего приложения. Затем с помощью одной команды вы сможете создать и запустить все службы из вашей конфигурации.
Мы можем установить Docker Compose любым из следующих методов.
Способ 1 — установка Docker Compose с использованием двоичного файла
Загрузите последнюю версию Docker Compose здесь.
На момент написания этой статьи последней версией была 2.6.1.
Выполните следующую команду, чтобы загрузить последнюю стабильную версию файла компоновки Docker:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Если доступна новая версия, просто замените номер v2.6.1 в приведенной выше команде на номер новой версии. Не забудьте поставить "v" перед номером версии.
Наконец, примените разрешения на исполняемый файл к двоичному файлу с помощью команды:
sudo chmod +x /usr/local/bin/docker-compose
Чтобы проверить установленную версию Docker Composer, запустите:
docker-compose version
Docker Compose version v2.6.1
Способ 2. Установите Docker Compose с помощью PiP
Альтернативно мы можем установить Docker Compose с помощью PIP. Pip — это менеджер пакетов Python, используемый для установки приложений, написанных на языке программирования Python.
Обратитесь к следующему руководству, чтобы установить Pip в вашей системе.
Как управлять пакетами Python с помощью Pip
После установки pip выполните следующую команду, чтобы установить docker Compose. Следующая команда одинакова для всех дистрибутивов Linux!
pip install docker-compose
После установки Docker Compose вы можете проверить версию командой:
docker-compose --version
Вы увидите результат, подобный приведенному ниже.
docker-compose version 2.6.1, build 8a1c60f6
Поздравляем! Мы успешно установили Docker Community Edition и Docker Compose.
Прочтите наше вводное руководство по Docker Compose, чтобы узнать, как использовать Docker Compose в режиме реального времени для определения контейнеров и управления ими.
Начало работы с Docker Compose в Linux
Обновить Docker Compose
Чтобы обновить Docker Compose, просто загрузите новый файл пакета и повторите инструкции по установке, как показано в методе 1. Если вы установили Compose с помощью Pip, вы можете обновить Docker Compose с помощью следующей команды:
pip install --upgrade docker-compose
Удалить Docker Engine
Чтобы удалить Docker Engine из вашей системы Ubuntu, запустите:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
Образы Docker, контейнеры, тома или настроенные файлы конфигурации в вашей системе не удаляются автоматически.
Вам следует вручную удалить все образы, контейнеры и тома, используя следующие команды:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Удалить Docker Compose
Если вы установили Compose с использованием двоичного файла, просто удалите его из пути /usr/local/bin/
.
sudo rm /usr/local/bin/docker-compose
Если вы установили Compose с помощью PiP, выполните следующую команду, чтобы удалить Docker Compose:
pip uninstall docker-compose
Заключение
В этом руководстве мы обсудили, что такое Docker и как установить Docker в Ubuntu 22.04 LTS Jammy Jellyfish. Затем мы узнали, как протестировать установку Docker, запустив образ Docker hello-world. Наконец, мы завершили руководство, установив Docker Compose двумя разными способами и указав, как удалить Docker Engine и Compose, когда они больше не нужны.
Чтобы установить Docker в системах на базе RPM, таких как RHEL, Fedora, CentOS, AlmaLinux, Rocky Linux и openSUSE, перейдите по следующей ссылке.
Установить Docker Engine и Docker Compose в AlmaLinux, CentOS, Rocky Linux
Ресурс:
- Веб-сайт Docker
Связанное чтение:
- Настройка Docker и Docker Compose с помощью DockSTARTer
Бесплатная электронная книга Docker:
- Загрузить - Бесплатная электронная книга: " Книга рецептов Docker-контейнеризации"END_DIV