Введение
В ходе этой лабораторной работы вы научитесь развертывать и настраивать среду CentOS 7. Хотя традиционный подход подразумевает использование полноценной виртуальной машины в VirtualBox, в данной работе применяется более современный и эффективный метод с использованием контейнеров Docker. Вы будете работать в облачной среде, где развернете легковесный изолированный контейнер CentOS 7, который обеспечит функциональность системы Linux без накладных расходов, характерных для обычной ВМ.
Процесс начинается с получения официального образа CentOS 7 из реестра Docker Hub. Затем вы создадите и настроите новый контейнер на базе этого образа. В завершение вы адаптируете работающую систему, установив графическую среду GNOME и настроив графический вход в систему, что позволит получить полностью готовую к работе инстанцию CentOS 7 с пользовательским интерфейсом.
Загрузка и подготовка образа CentOS 7
На этом этапе мы подготовим рабочую среду, получив систему CentOS 7. В оригинальном упражнении для установки полноценной виртуальной машины используется VirtualBox. Однако в данной облачной лабораторной среде более эффективным и современным подходом является использование контейнеров Docker. Docker позволяет запускать изолированные приложения и операционные системы в легковесных средах — контейнерах, которые запускаются гораздо быстрее и потребляют меньше ресурсов, чем традиционные виртуальные машины.
Мы начнем с загрузки (или «пуллинга» на языке Docker) официального образа CentOS 7 из Docker Hub — публичного реестра образов контейнеров.
Сначала скачаем образ CentOS 7. Команда docker pull извлекает образ из реестра. Мы укажем centos в качестве имени образа и 7 в качестве тега, что соответствует версии CentOS 7.
Выполните следующую команду в терминале:
docker pull centos:7
Вы увидите процесс загрузки. Docker скачивает образ послойно. По завершении вывод будет выглядеть примерно так:
7: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
Теперь, когда образ загружен, проверим его наличие в нашей локальной системе. Мы можем просмотреть список всех локальных образов Docker с помощью команды docker images.
docker images
В списке должна появиться запись centos с тегом 7. Значения IMAGE ID и дата создания (CREATED) в вашей системе могут отличаться.
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 eeb6ee3f44bd 2 years ago 204MB
После успешной загрузки образа CentOS 7 мы готовы создать и запустить контейнер на его основе на следующем этапе.
Создание и настройка среды CentOS 7
На этом этапе мы создадим и настроим нашу среду CentOS 7. Вместо традиционной виртуальной машины мы будем использовать загруженный образ Docker centos:7 для запуска контейнера. Контейнер — это запущенный экземпляр образа. Он будет служить нашей «виртуальной машиной» на протяжении всей лабораторной работы.
Мы воспользуемся командой docker run для создания и запуска контейнера. Мы добавим несколько важных опций:
-it: эта комбинация флагов подключает наш терминал к терминалу контейнера, позволяя выполнять команды в интерактивном режиме.--name centos_workstation: присваивает контейнеру понятное имяcentos_workstation. Это упрощает управление им (запуск, остановку, удаление) в дальнейшем.centos:7: указывает образ, который мы хотим запустить./bin/bash: команда, которая будет выполнена внутри контейнера при запуске. Она запустит оболочку Bash, предоставив нам командную строку.
Теперь выполните следующую команду, чтобы запустить контейнер CentOS:
docker run -it --name centos_workstation centos:7 /bin/bash
После выполнения команды вы заметите, что приглашение терминала изменилось. Оно будет выглядеть примерно так:
[root@a1b2c3d4e5f6 /]#
Новое приглашение указывает на то, что вы находитесь внутри контейнера CentOS 7 под пользователем root. Строка из букв и цифр (например, a1b2c3d4e5f6) — это уникальный идентификатор вашего контейнера. Вы больше не находитесь в оболочке хост-системы LabEx.
Следуя плану оригинального упражнения, создадим обычного пользователя. Мы создадим пользователя с именем student1. Используйте для этого команду useradd:
useradd student1
Затем установите пароль для student1. Для простоты будем использовать student1 в качестве пароля. Команда passwd предложит вам ввести и подтвердить новый пароль.
passwd student1
При появлении запроса введите student1, нажмите Enter, затем введите student1 еще раз и снова нажмите Enter.
Changing password for user student1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Чтобы завершить этот этап, нам нужно вернуться в основной терминал LabEx. Введите exit и нажмите Enter, чтобы выйти из оболочки контейнера.
exit
Это остановит контейнер и вернет вас к приглашению командной строки в директории ~/project. Контейнер centos_workstation теперь существует, и его можно будет запустить снова на следующих этапах.
Настройка системы и управление пользователями
На этом этапе мы настроим нашу новую среду CentOS 7. В оригинальном упражнении подразумевается детальный процесс установки с пользовательской разметкой диска. В нашей среде на базе Docker этот процесс отличается. «Установка» уже выполнена, так как мы используем готовый образ. Концепция ручного создания разделов, таких как /, /home и /var, не применима к стандартному контейнеру Docker, так как он использует файловую систему хоста многослойным способом.
Вместо этого мы сосредоточимся на начальной настройке запущенной системы, что является типичной задачей после развертывания новой ОС. Мы запустим контейнер, обновим пакеты программного обеспечения и установим sudo, чтобы наш обычный пользователь мог выполнять административные задачи.
Сначала запустим контейнер, созданный на предыдущем шаге. Сейчас он остановлен. Используйте команду docker start:
docker start centos_workstation
Команда выведет имя контейнера centos_workstation, подтверждая запуск. Теперь подключитесь к работающему контейнеру с помощью docker attach:
docker attach centos_workstation
Приглашение терминала снова изменится на root-оболочку контейнера:
[root@a1b2c3d4e5f6 /]#
Теперь настроим необходимые службы. Сначала нужно исправить конфигурацию репозиториев CentOS 7, так как срок ее поддержки подошел к концу:
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/#baseurl/baseurl/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's|http://mirror.centos.org|http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
Минимальный образ CentOS 7 очень лаконичен. Начнем с обновления всех установленных пакетов до последних версий с помощью yum — менеджера пакетов CentOS. Флаг -y автоматически подтверждает выполнение операции.
yum update -y
Этот процесс может занять несколько минут. По завершении мы установим пакет sudo, который не входит в минимальный образ. sudo позволяет разрешенным пользователям выполнять команды от имени другого пользователя, обычно root.
yum install -y sudo
После завершения установки нам нужно предоставить права sudo пользователю student1, созданному ранее. В CentOS это обычно делается путем добавления пользователя в группу wheel.
usermod -aG wheel student1
usermod— команда для изменения учетной записи пользователя.- Флаги
-aGуказывают команде добавить пользователя в дополнительную группу (в данном случаеwheel).
Чтобы убедиться, что student1 теперь имеет доступ к sudo, переключимся на этого пользователя и протестируем права.
su - student1
Приглашение изменится на [student1@a1b2c3d4e5f6 ~]$. Теперь попробуйте запустить команду whoami через sudo. Она должна сообщить, что вы — root.
sudo whoami
Ожидаемый результат:
root
Отлично! Наш контейнер теперь настроен: система обновлена, а у пользователя есть права sudo. Чтобы перейти к следующему шагу, нам нужно выйти из контейнера, но оставить его работать в фоновом режиме. Не вводите exit. Вместо этого нажмите комбинацию клавиш Ctrl+P, а затем Ctrl+Q. Это отсоединит ваш терминал от контейнера, вернув вас к приглашению LabEx, в то время как контейнер продолжит работу.
Установка инструментов разработки и консольного браузера
На этом этапе мы адаптируем цель оригинального упражнения по установке графического рабочего стола. В среде контейнеров, подобной нашей, установка полноценного графического интерфейса (GUI), такого как GNOME, не является стандартной практикой. Контейнеры спроектированы как легковесные системы и обычно управляются через командную строку.
Вместо этого мы отработаем тот же навык — установку групп связанных программных пакетов — путем установки набора инструментов командной строки. Мы также установим текстовый веб-браузер, чтобы реализовать исходную задачу по обеспечению доступа к браузеру в новой среде.
Сначала нам нужно войти в наш работающий контейнер. На предыдущем шаге мы оставили centos_workstation работать в фоне. Мы воспользуемся командой docker exec, чтобы открыть новую оболочку внутри него от имени пользователя student1.
Если вы уже находитесь внутри контейнера, можете пропустить эту команду.
docker exec -it centos_workstation su - student1
Приглашение командной строки изменится на [student1@a1b2c3d4e5f6 ~]$, что означает, что вы вошли как student1 внутри контейнера.
Теперь воспользуемся yum для установки группы пакетов "Development Tools". Эта группа содержит основные инструменты для компиляции программного обеспечения из исходных кодов, такие как gcc, make и git. Поскольку у student1 есть права sudo, мы можем выполнить эту установку. Флаг -y автоматически подтвердит все запросы.
sudo yum groupinstall -y "Development Tools"
Эта установка загрузит и настроит множество пакетов и может занять несколько минут. Вы увидите подробный вывод процесса установки.
Затем, чтобы завершить настройку, установим lynx — легковесный текстовый веб-браузер. Это полезный инструмент для быстрой проверки веб-сайтов или загрузки файлов напрямую из командной строки.
sudo yum install -y lynx
Установка lynx пройдет очень быстро. Протестируем наш новый браузер, перейдя на простой веб-сайт.
lynx example.com
Вы увидите текстовое содержимое главной страницы example.com в вашем терминале. Для навигации можно использовать клавиши со стрелками. Чтобы выйти из lynx, нажмите клавишу q. При появлении запроса на подтверждение (Are you sure you want to quit? [Y/N]) нажмите y.
Вы успешно настроили среду CentOS, установив важные инструменты разработки и консольный браузер. Чтобы завершить лабораторную работу, выйдите из контейнера.
Введите exit, чтобы выйти из учетной записи student1, а затем введите exit еще раз, чтобы покинуть оболочку контейнера и вернуться в основной терминал LabEx.
exit
exit
Резюме
В этой лабораторной работе вы научились настраивать среду CentOS 7, используя современный контейнерный подход с помощью Docker. Вы начали с получения официального образа CentOS 7 из публичного реестра Docker Hub с помощью команды docker pull centos:7. Затем вы убедились, что образ успешно загружен и доступен в локальной системе, просмотрев список образов командой docker images.
Эта начальная настройка подготовила фундамент для последующих шагов, в ходе которых вы создали и запустили контейнер на базе этого образа. Общая цель заключалась в выполнении полноценной настройки CentOS 7, включая пользовательские конфигурации и установку необходимых пакетов, в рамках эффективного и легковесного контейнера Docker.



