Вместо того чтобы устанавливать 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 вместо виртуальной машины
Комментировать