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

Как установить Docker на Debian 11


На этой странице

  1. Предпосылки
  2. Установить зависимости
  3. Добавление репозитория Docker
  4. Установка Docker в Debian 11
  5. Разрешить пользователям без полномочий root доступ к Docker
  6. Основное использование Docker
  7. Заключение

Docker — это набор открытых платформ, обеспечивающих виртуализацию на уровне ОС для разработки, доставки и запуска приложений. В Docker приложения доставляются в виде пакетов, стандартизованных единиц, называемых контейнерами. Каждый контейнер изолирован друг от друга, включая библиотеки и файлы конфигурации, но каждый из них может взаимодействовать через четко определенные сетевые каналы.

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

В этом руководстве вы узнаете, как установить Docker на Debian 11 Bullseye. Кроме того, вы узнаете, как использовать Docker для запуска контейнеров и управления образами.

Предпосылки

  • Сервер Debian 11. Убедитесь, что все пакеты обновлены до последней версии.
  • Пользователь root или пользователь с привилегиями root. Этот пользователь будет использоваться для установки новых пакетов и редактирования системных конфигураций.

Установить зависимости

Во-первых, вы будете устанавливать некоторые основные зависимости пакетов в свою систему Debian.

1. Выполните приведенную ниже команду apt для установки новых зависимостей пакетов.

apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Введите y и нажмите Enter, чтобы установить все эти пакеты.

Добавление репозитория Docker

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

1. Выполните следующую команду, чтобы добавить ключ GPG для Docker.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2. После этого добавьте репозиторий Docker для системы Debian 11 с помощью приведенной ниже команды.

echo \
 "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. Теперь запустите команду apt update, чтобы обновить/обновить все доступные репозитории.

apt update

Теперь вы готовы установить Docker в Debian 11 Bullseye.

Установка Docker в Debian 11

1. Если в вашей системе ранее был установлен Docker из репозитория Debian, вы должны удалить его с помощью приведенной ниже команды.

sudo apt remove docker docker-engine docker.io containerd runc

2. После этого вы можете снова установить Docker, используя приведенную ниже команду apt.

apt install docker-ce docker-ce-cli containerd.io

Введите y и нажмите Enter, чтобы подтвердить установку.

3. Если установка завершена, выполните следующую команду, чтобы проверить установку.

Проверьте, включена ли служба или нет.

systemctl is-enabled docker
systemctl is-enabled containerd

Проверьте статус службы Docker и Containerd.

systemctl status docker containerd

Ниже приведен аналогичный результат, который вы получите.

Как видно, службы Docker и Containerd активны (работают), и обе службы включены и будут запускаться автоматически при запуске системы.

Разрешить пользователю без полномочий root доступ к Docker

По умолчанию Docker разрешает запускать контейнеры только пользователю root. А чтобы пользователь без полномочий root мог запускать контейнеры, необходимо добавить своего пользователя без полномочий root в группу docker, которая автоматически создается при установке Docker.

1. В этом примере вы будете использовать пользователя johndoe для запуска контейнера Docker.

Создайте нового пользователя johndoe в вашей системе Debian с помощью следующей команды.

useradd -m -s /bin/bash johndoe

2. После этого выполните следующую команду, чтобы добавить пользователя johndoe в докер группы.

usermod -aG docker johndoe

3. Теперь войдите в систему как пользователь johndoe, используя приведенную ниже команду, и проверьте конфигурацию.

su - johndoe

Выполните следующую команду docker, чтобы проверить установку.

docker run hello-world

И вы увидите сообщение Hello Docker ниже.

Ниже приведено простое объяснение команды docker, которую вы запускаете сверху.

  • Докер попытается найти изображение с именем hello-world. Если образ доступен локально, докер запустит контейнер, если образ недоступен локально, докер найдет и загрузит образ hello-world на Docker-hub (репозиторий образов docker по умолчанию).
  • Если загружен образ Docker, Docker запустит контейнер. И контейнер выполняет команды и показывает вам сообщение Hello Docker.

4. Теперь проверьте контейнер docker с помощью приведенной ниже команды docker.

Проверка контейнера с запущенным состоянием.

docker ps

Проверка всех контейнеров - покажет вам все контейнеры, запущенные в данный момент и остановленные контейнеры.

docker ps -a

Ниже приведен аналогичный вывод, как показано ниже.

Как видите, новое имя контейнера bold_bartix создается с базовым изображением hello-world, а текущий статус контейнера Exited или остановлен. Имя контейнера bold_bartix на скриншоте выбрано Docker случайным образом, но вы можете указать имя своего контейнера.

Основное использование Докера

На этом этапе вы изучите базовые принципы использования Docker для управления образами и контейнерами.

1. Сначала загрузите образы Docker на локальный компьютер с помощью следующей команды.

docker pull nginx:alpine

Команда загрузит образ Docker с именем nginx и тегом alpine в вашу систему.

Термин «теги» похож на версию самого изображения. Nginx:alpine означает образ nginx с тегом alpine, что означает, что он основан на операционной системе Alpine Linux. Всегда проверяйте все доступные теги образов Docker в официальном репозитории Docker-Hub.

Ниже приведен пример всех доступных тегов для образа Docker nginx.

Чтобы проверить все доступные образы Docker в вашей локальной системе, выполните следующую команду docker.

docker images

Вы увидите аналогичный вывод, как показано ниже.

Как видно, у вас есть два образа Docker: nginx:alpine и hello-world.

2. Затем выполните следующую команду, чтобы запустить контейнер.

docker run -it --rm -d -p 8080:80 --name web nginx:alpine

Теперь вы получите случайную строку и номер нового контейнера.

Опции, которые вы должны знать:

  • -i или --interactive — держать контейнер STDIN открытым, даже если он не подключен.
  • -t или --tty — выделяет псевдотерминал, который соединяет ваш терминал с STDIN и STDOUT контейнера.
  • --rm — автоматически удалять контейнер при выходе или остановке контейнера.
  • -d - запуск контейнера в фоновом режиме, отсоединение контейнера после его запуска.
  • -p 8080:80 — сопоставить порт между контейнером и хост-системой. Порт 80 в контейнере сопоставляется с портом 8080 хост-системы.
  • --name web — укажите имя нового контейнера как web.
  • nginx:alpine — мы используем образ Docker nginx:alpine.

Теперь проверьте работающий контейнер с помощью приведенной ниже команды.

docker ps

Вы увидите аналогичный результат, как показано ниже.

Чтобы проверить свой контейнер Nginx, откройте веб-браузер и введите IP-адрес вашего сервера с портом 8080.

http://192.168.1.10:8080/

И вы увидите индексную страницу Nginx из веб-контейнера, как показано ниже.

3. Затем вы можете проверить журнал контейнера, выполнив следующую команду docker.

docker logs web

И вы увидите все логи вашего контейнера, от начала до конца.

Чтобы ограничить вывод журнала, вы можете использовать параметр --tail n, как показано ниже.

docker logs --tail 10 web

И вы увидите последние 10 строк логов контейнера.

4. Теперь, чтобы остановить контейнер Docker, вы можете использовать команду Docker ниже.

docker stop web

После этого проверьте работающий контейнер с помощью следующей команды.

docker ps
docker ps -a

Вы увидите следующий вывод, как показано ниже.

Веб-контейнер останавливается и автоматически удаляется. Это потому, что вы используете параметр --rm при запуске контейнера.

5. Далее вы научитесь запускать контейнер с пользовательским томом. Каталог на хост-компьютере будет использоваться как том для контейнера Docker.

Создайте новый каталог данных и пользовательский файл index.html, используя следующую команду.

mkdir -p ~/data/
nano ~/data/index.html

Скопируйте и вставьте пользовательский скрипт index.html, как показано ниже.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Docker Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container</h2>
</body>
</html>

Сохраните конфигурацию, нажав кнопку Ctrl+x, введите y и нажмите Enter.

Затем создайте новый контейнер с помощью приведенной ниже команды docker.

docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

Теперь вы получите случайное число и строку контейнера.

Опция -v ~/data:/usr/share/nginx/html смонтирует ~/data на локальном компьютере в контейнер в каталоге /usr/share/nginx/html.

Теперь проверьте контейнер Docker, используя следующую команду.

docker ps

И вы увидите аналогичный вывод, как показано ниже.

Затем снова откройте веб-браузер и введите IP-адрес сервера, а затем порт 8080, как показано ниже.

И вы получите пользовательский index.html, который вы только что создали сверху, что означает, что каталог ~/data монтируется в каталог контейнера /usr/share/nginx/html.

6. Кроме того, вы можете войти в работающий текущий веб-контейнер, выполнив приведенную ниже команду docker.

Во-первых, проверьте, работает ли веб-контейнер.

docker ps

Теперь присоединитесь к сети контейнера с помощью приведенной ниже команды.

docker exec -it web /bin/sh

Внутри контейнера проверьте имя хоста контейнера, используя следующую команду.

hostname

Проверьте IP-адрес контейнера с помощью приведенной ниже команды ip.

ip a

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

route -n

Ниже приведен аналогичный результат, который вы получите.

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

docker stop web

Кроме того, вы можете удалить все контейнеры со статусом exit с помощью приведенной ниже команды.

docker rm $(docker ps --filter "status=exited" -q)

Заключение

Поздравляем! Вы успешно установили Docker на Debian 11 Bullseye. Кроме того, вы узнали, как использовать Docker для извлечения образа из Docker-Hub, запуска контейнера Docker, проверки состояния контейнера Docker, журналов и базового использования тома Docker. На следующем этапе вы можете попытаться создать собственный образ Docker для своего приложения и отправить его в репозиторий Docker Hub.