- Что такое Docker
- Установка Docker в Debian
- Настройка Docker на Debian
- Как работать с утилитой Docker
- Как добавить пользователя в Docker
- Образы Docker
- Как управлять контейнерами Docker
Планируете установить Docker на Debian? В нашем руководстве мы рассмотрим все шаги, которые помогут быстро и без проблем интегрировать Docker в ваше окружение.
Что такое Docker
Docker – это платформа с открытым исходным кодом, которая предназначена для автоматизации развертывания, масштабирования и управления приложениями в контейнерах. Контейнеры в Docker позволяют запускать приложения и их зависимости в изолированных средах, что обеспечивает независимость от операционной системы и инфраструктуры, на которой они работают.
Основное преимущество Docker – это создание стандартизированных, легковесных контейнеров, которые содержат все необходимое для работы приложения: код, библиотеки и системные зависимости. В отличие от виртуальных машин, которые требуют отдельной операционной системы и связаны с большим количеством ресурсов, Docker-контейнеры делят ядро операционной системы и более экономно используют ресурсы.
Docker также предоставляет удобные инструменты для разработки, тестирования и развертывания приложений. С его помощью разработчики могут создавать образы приложений, распространять их через Docker Hub и быстро развертывать в различных средах.
Установка Docker в Debian
- Сначала обновите список пакетов системы, чтобы получить последние версии установленных программ и доступные обновления. Для этого используйте команду:
- Далее необходимо установить несколько пакетов, которые обеспечат корректную работу пакетного менеджера apt по протоколу HTTPS. Это позволит вашему компьютеру безопасно загружать пакеты из внешних репозиториев.
Установите их с помощью команды:
- После этого нужно добавить GPG-ключ репозитория Docker, чтобы убедиться, что устанавливаемые пакеты действительно исходят из доверенного источника.
Для этого выполните:
- Теперь добавьте сам репозиторий Docker в список источников пакетов вашей системы. Это позволит вам загружать и устанавливать Docker непосредственно из его официального источника:
- После добавления репозитория снова обновите список пакетов, чтобы apt мог увидеть новые пакеты Docker:
- Затем проверьте, что Docker доступен для установки, выполнив следующую команду:
- Если все настроено правильно, установите Docker с помощью команды:
- После завершения установки рекомендуется убедиться, что Docker был установлен и запущен корректно. Проверьте статус Docker с помощью команды:
Если установка прошла успешно, вы увидите информацию о том, что Docker активен.
Настройка Docker на Debian
После установки Docker на Debian важно правильно настроить его для удобного использования и оптимальной работы.
В первую очередь важно правильно настроить сетевой интерфейс. Docker автоматически создает сетевой интерфейс «docker0», и его настройка может отличаться от основной сети.
Например, у интерфейса «docker0» может быть MTU 1500, тогда как основной сетевой интерфейс, например, «ens3», использует MTU 1450. Из-за этого могут появиться проблемы с сетью и задержки при работе с интернет-сервисами.
Чтобы решить эту проблему, нужно изменить конфигурацию Docker.
- Откройте файл конфигурации Docker, прописав:
- Найдите строку, которая начинается с ExecStart, и измените её следующим образом, чтобы указать нужный размер MTU:
- Сохраните изменения и закройте файл.
Если вы используете Docker Compose, для правильной работы с нужным MTU важно настроить файл docker-compose.yml:
Перейдите в директорию вашего проекта и измените конфигурацию сети в файле следующим образом:
default:
driver: bridge
driver_opts:
com.docker.network.driver.mtu: 1450
Сохраните изменения и закройте файл.
После всех изменений необходимо перезапустить Docker, чтобы новые настройки вступили в силу. Выполните поочередно команды:
sudo service docker restart
Как работать с утилитой Docker
Основной синтаксис Docker:
Чтобы увидеть полный список доступных опций и команд, можно просто ввести docker в терминале. Так вы увидите перечень команд, которые можно использовать для управления Docker-контейнерами и образами.
Если вы хотите узнать больше о какой-либо конкретной команде, к примеру, о команде загрузки образа pull, можно добавить флаг --help после команды, чтобы увидеть список всех доступных опций для этой команды.
Пример:
А чтобы узнать больше о командах и параметрах Docker, можно воспользоваться встроенной справкой:
Основные команды Docker:
Команда |
Описание |
---|---|
attach |
Подключает стандартный ввод, вывод и ошибки локальной машины к запущенному контейнеру. |
build |
Создает образ на основе Dockerfile. |
commit |
Создает новый образ из изменений контейнера. |
cp |
Копирует файлы/папки между контейнером и локальной файловой системой. |
create |
Создает новый контейнер. |
diff |
Показывает изменения в файлах или директориях файловой системы контейнера. |
events |
Получает события с сервера в реальном времени. |
exec |
Выполняет команду в запущенном контейнере. |
export |
Экспортирует файловую систему контейнера как tar-архив. |
history |
Показывает историю образа. |
images |
Выводит список образов. |
import |
Импортирует содержимое из tar-архива для создания образа файловой системы. |
info |
Показывает системную информацию о Docker. |
inspect |
Возвращает детальную информацию об объектах Docker. |
kill |
Завершает один или несколько запущенных контейнеров. |
load |
Загружает образ из tar-архива или STDIN. |
login |
Входит в Docker-реестр. |
logout |
Выходит из Docker-реестра. |
logs |
Получает логи контейнера. |
pause |
Приостанавливает все процессы в одном или нескольких контейнерах. |
port |
Показывает порты контейнера. |
ps |
Показывает список контейнеров. |
pull |
Загружает образ или репозиторий из реестра. |
push |
Отправляет образ или репозиторий в реестр. |
rename |
Переименовывает контейнер. |
restart |
Перезапускает один или несколько контейнеров. |
rm |
Удаляет один или несколько контейнеров. |
rmi |
Удаляет один или несколько образов. |
run |
Запускает команду в новом контейнере. |
save |
Сохраняет один или несколько образов в tar-архив (по умолчанию в STDOUT). |
search |
Ищет образы на Docker Hub. |
start |
Запускает один или несколько остановленных контейнеров. |
stats |
Показывает в реальном времени статистику по использованию ресурсов контейнеров. |
stop |
Останавливает один или несколько запущенных контейнеров. |
tag |
Создает тег для образа, ссылающийся на другой образ. |
top |
Показывает запущенные процессы в контейнере. |
unpause |
Возобновляет все процессы в одном или нескольких контейнерах. |
update |
Обновляет конфигурацию одного или нескольких контейнеров. |
version |
Показывает информацию о версии Docker. |
wait |
Ожидает завершения контейнеров и выводит их коды завершения. |
Как добавить пользователя в Docker
По умолчанию команда Docker требует привилегий root, то есть для ее выполнения необходимо добавлять префикс sudo. Однако, чтобы не вводить sudo каждый раз, можно добавить текущего пользователя в группу docker, которая создается автоматически при установке Docker.
Чтобы добавить пользователя в группу docker, выполните следующую команду:
После этого изменения нужно либо выйти из системы и войти снова, либо активировать обновленные настройки командой:
Команда запросит пароль вашего пользователя, после чего изменения вступят в силу. Чтобы убедиться, что пользователь был успешно добавлен в группу docker, используйте команду:
Она покажет список групп, в которых состоит пользователь. Если вам нужно добавить другого пользователя в группу docker, укажите его имя:
Где «username» – это имя пользователя.
Теперь команды Docker можно выполнять без использования префикса sudo.
Образы Docker
Образы Docker – это основа для создания контейнеров. Каждый контейнер запускается из определенного образа, который включает в себя всё необходимое для работы приложения: код, библиотеки, зависимости и даже операционную систему. Docker использует концепцию образов, чтобы стандартизировать окружение, в котором запускается приложение.
По умолчанию образы хранятся на Docker Hub – публичном реестре, который поддерживает команда разработчиков Docker. Там можно найти образы для различных приложений и дистрибутивов Linux. Любой пользователь может загрузить свои образы в этот реестр, что делает его удобным и универсальным для всех разработчиков.
Проверка установки Docker
Чтобы проверить, корректно ли работает ваша установка Docker и можете ли вы загружать образы с Docker Hub, выполните следующую команду:
Если Docker не может найти образ hello-world локально, он автоматически загрузит его с Docker Hub, а затем создаст контейнер на его основе. Результатом выполнения этой команды будет сообщение, подтверждающее успешную работу Docker:
Поиск образов на Docker Hub
Docker предоставляет удобный способ поиска образов на Docker Hub. Для этого используется команда docker search. Например, чтобы найти образы операционной системы Ubuntu, выполните следующую команду:
Команда вернет список доступных образов с названием «ubuntu» и информацию о них, включая количество звёзд (рейтингов), официальную поддержку и описание. Образы, отмеченные как OFFICIAL, поддерживаются официальной командой разработчиков проекта, что гарантирует их стабильность и надёжность.
Загрузка Docker-образов
Выбрав нужный образ, вы можете загрузить его с Docker Hub с помощью docker pull.
Например, чтобы загрузить образ Ubuntu, пропишите:
Команда загрузит последнюю версию образа Ubuntu. Если вам нужна конкретная версия образа, вы можете указать ее тег:
Запуск Docker-контейнеров
После загрузки образа можно запустить контейнер на его основе. Команда для запуска контейнера выглядит так:
Если запрашиваемый образ еще не был загружен, Docker автоматически скачает его перед запуском контейнера.
Список загруженных образов
Чтобы увидеть все образы, которые были загружены на вашу систему, используйте команду:
Она выведет список всех доступных локально образов с указанием их репозиториев, тегов, идентификаторов и размера.
Пример вывода:
ubuntu latest 3d8f4339ddac 4 days ago 111MB
hello-world latest 5fd2c0544a9h 1 week ago 2.85kB
Как управлять контейнерами Docker
Как управлять контейнерами Docker
В процессе работы с Docker на вашей системе могут накапливаться как активные, так и неактивные контейнеры. Управление этими контейнерами – важная часть работы с Docker. Есть множество команд для их мониторинга, запуска, остановки и удаления.
Просмотр списка контейнеров
Чтобы увидеть список всех запущенных контейнеров, выполните:
Эта команда покажет только активные контейнеры с их идентификаторами (ID), образом, командой запуска и временем создания. Если на данный момент нет запущенных контейнеров, список будет пуст.
Чтобы увидеть все контейнеры, включая остановленные, добавьте опцию -a:
В выводе будут указаны контейнеры, их статус (запущен, остановлен и т.д.), а также время создания. Например:
c81f0a9e1b7b ubuntu "/bin/bash" 10 minutes ago Exited (0) 10 minutes ago focused_lewin
b09d84f2c28d hello-world "/hello" 7 minutes ago Exited (0) 7 minutes ago charming_einstein
Запуск контейнеров
Чтобы запустить ранее остановленный контейнер, используйте команду docker start, указав ID или имя контейнера. Например, для запуска контейнера Ubuntu с ID c81f0a9e1b7b введите:
После этого контейнер запустится, и его статус изменится на «Up», что можно проверить с помощью уже знакомой команды:
Остановка контейнеров
Чтобы остановить работающий контейнер, используется команда docker stop. Вы можете указать как ID контейнера, так и его имя. Например, чтобы остановить контейнер с именем friendly_volhard:
После этого контейнер перейдёт в статус "Exited", что можно проверить с помощью команды docker ps -a.
Удаление контейнеров
Когда контейнер больше не нужен, его можно удалить с помощью команды docker rm. Чтобы удалить контейнер, укажите его ID или имя. Например, для удаления контейнера focused_lewin:
Удаленный контейнер исчезнет из списка всех контейнеров, который можно проверить командой docker ps -a.
Создание контейнеров с определёнными параметрами
При создании новых контейнеров с помощью команды docker run вы можете присвоить им имя, используя флаг --name. Например:
Также можно создать контейнер, который автоматически удалится после завершения своей работы.
Для этого используется флаг --rm:
Теперь, когда Docker установлен и настроен, вы можете использовать его для создания, управления и развертывания контейнеров.