Как установить Docker на Debian 11
На этой странице
- Предпосылки
- Установить зависимости
- Добавление репозитория Docker
- Установка Docker в Debian 11
- Разрешить пользователям без полномочий root доступ к Docker
- Основное использование Docker
- Заключение
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.