Как запустить Ubuntu в качестве контейнера Docker
Linux

Как запустить Ubuntu в качестве контейнера Docker

Вместо того чтобы устанавливать Ubuntu на виртуальную машину, вы можете выбрать установку в виде контейнера Docker

Docker – самый любимый инструмент программирования по данным опроса разработчиков Stack Overflow за 2023 год. Он широко используется в ИТ и произвел революцию в способах развертывания приложений

Контейнеры Docker немного похожи на виртуальные машины, но они более легковесны и содержат только основные необходимые элементы операционной системы. Чтобы оценить, насколько минимальными могут быть контейнеры Docker, давайте посмотрим, как можно запустить Ubuntu в Docker

Шаг 1: Получение образа Ubuntu Docker

Если у вас не установлен Docker, следуйте нашему руководству по установке Docker на Ubuntu. И конечно, вы также можете установить Docker на macOS и Windows

Docker Hub – это рекомендуемый репозиторий для получения публично проверенных и официальных образов Docker. Вы также можете использовать Docker Hub для управления и создания частных образов Docker

Облачные провайдеры, такие как Azure и AWS, также предоставляют репозитории Docker, где вы можете размещать и управлять своими собственными образами Docker

Вы можете загрузить последний образ Ubuntu с помощью следующей команды:

sudo docker pull ubuntu

Docker загрузит последний образ на ваш компьютер, если он еще не хранится локально

Если вас интересует конкретная версия, просто посмотрите доступные теги образа в Docker Hub, а затем загрузите его, используя этот конкретный тег. Например, чтобы загрузить Ubuntu 20. 04, выполните команду:

sudo docker pull ubuntu:20. 04

Список всех образов Docker на вашем компьютере можно получить с помощью команды sudo docker images

Шаг 2: Запуск образа Ubuntu

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

sudo docker run -ti --rm ubuntu /bin/bash

Эта команда указывает Docker на запуск контейнера в интерактивном режиме терминала (-ti). Аргумент /bin/bash – это способ указать контейнеру запустить терминал оболочки Bash. Наконец, флаг –rm предписывает Docker автоматически удалить контейнер после его остановки

Оболочка запускается от имени пользователя root, а терминал похож на тот, что вы получаете в обычной системе Linux. По умолчанию контейнер получает случайное имя хоста

Вы также заметите, что образ не имеет графического интерфейса или многих других стандартных инструментов командной строки, которые поставляются с Ubuntu. Размер образа Ubuntu Docker составляет всего около 78 МБ, что очень мало

Запуск команд Linux на Ubuntu Docker

Обычно вы проверяете информацию об ОС в Linux с помощью команды lsb_release -a, но в данном случае вы обнаружите, что эта команда недоступна, поскольку в системе Ubuntu по умолчанию не установлен пакет lsb-core. Помните, что образы Docker поставляются только с основными элементами и ни с чем другим

К счастью, мы можем проверить информацию об ОС с помощью команды cat, которая входит в состав оболочки Bash

cat /etc/os-release

Как видно из вывода, это LTS-версия Ubuntu, выпущенная в 2023 году. Благодаря возможностям Docker мы можем запускать ОС, используя очень минимальные системные ресурсы

А поскольку это просто легкая ОС, мы можем установить нужные нам приложения с помощью привычных команд Ubuntu. Сначала обновите источники пакетов и установите lsb-core, набрав:

apt update && apt install lsb-core

Обратите внимание, что вам не нужно использовать команду sudo, поскольку вы вошли в оболочку Docker как пользователь root

После установки вы можете выполнить команду lsb_release -a, и на этот раз вы получите некоторые результаты

Сохранение состояния контейнера Docker

Если вы остановите контейнер Docker на этом этапе, вы потеряете все сделанные изменения, включая обновления программного обеспечения и установленные инструменты. Так устроены контейнеры Docker; их легко заменять, останавливать и управлять ими

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

sudo docker ps

Предыдущая команда выводит список всех контейнеров Docker на вашем компьютере. Образ Ubuntu, приведенный выше, имеет идентификатор 524aa76baafb, ваш образ будет другим

Сохраните состояние контейнера, выполнив следующую команду:

docker commit -p container_id new_container_name

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

sudo docker commit -p 524aa76baafb myubuntu

Предыдущая команда приостановит работу контейнера перед его сохранением и создаст новый образ Docker с именем myubuntu. Новый образ Docker будет содержать все изменения, которые вы внесли в него. Таким образом, вы только что создали собственный Docker-образ Ubuntu

Если вы перечислите свои образы Docker с помощью команды sudo docker images, ваш новый пользовательский образ должен быть в списке

Сохранение данных в Docker-контейнере Ubuntu

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

Вы можете создать том Docker в любом месте вашего компьютера. Давайте создадим его в домашнем каталоге и назовем его Docker_Share

sudo mkdir -p Docker_Share

Затем остановите контейнер Ubuntu с помощью следующей команды, заменив container_id на фактический ID контейнера Docker:

sudo docker stop container_id

Наконец, мы можем запустить образ Ubuntu для сохранения данных в каталоге Docker_Share с помощью команды ниже. Кроме того, вы можете создать файл docker-compose, чтобы легко запускать образы Docker

sudo docker run -ti --rm -v ~/Docker_Share:/data ubuntu /bin/bash

Эта команда запустит образ Ubuntu и создаст каталог /data в контейнере Docker. Каталог /data сопоставлен с папкой Docker_Share, созданной ранее

Вы можете получить доступ к любым созданным или измененным файлам в каталоге /data контейнера, используя каталог Docker_Share. Обратное также верно; Docker будет копировать любые изменения файлов в каталоге Docker_Share в каталог /data контейнера

Docker – отличная замена виртуальным машинам

Docker – это очень мощная технология, которая позволяет развертывать и запускать приложения в безопасной и надежной среде. Вы можете использовать его для широкого круга задач, и в большинстве случаев вам будет достаточно запустить легкий контейнер Docker вместо виртуальной машины

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий