Поиск по сайту:

Установите 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, ваша система должна соответствовать следующим минимальным требованиям.

  1. 64-разрядная операционная система Linux или Windows.
  2. Если вы используете Linux, версия ядра должна быть 3.10 или выше.
  3. Учетная запись пользователя с привилегиями sudo.
  4. В BIOS вашей системы включена поддержка VT (технологии виртуализации). [Читайте: Как узнать, поддерживает ли процессор технологию виртуализации (VT)]
  5. Ваша система должна быть подключена к Интернету.

В 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

Статьи по данной тематике