faer.grok

Пользуемся CentOS без скачивания iso-шника на 10ГБ

tl;dr

я предлагаю создать Docker-контейнер с CentOS, моим целям(практика в использовании bash и терминала) использование контейнера удовлетворяет, если вам тоже не нужна виртуализация устройств и тд, то можете тоже воспользоваться данным способом. Сам туториал начинается здесь

Предисловие

Всем привет! Вообщем, я заметил, что CentOS что-то вообще забил на простых пользователей и не предлагает теперь minimal версии. Мб я плохо искал, но я не смог найти свежий официальный iso-файл, который можно было бы скачать на университетской WiFi-сети без ожидания нескольких десятков часов(10ГБ всё таки). So, пообщавшись с Claude, я нашёл лёгкий(в плане занимаемой памяти, но для кого-то и в плане установки тоже. Это использование Docker-контейнера. Он не поддерживает виртуализацию устройств и ещё какие-то специфические штуки, которые могут быть только на виртуальной машине(почитать подробнее об отличиях ВМ и контейнера можно тут, но для практики в bash и терминале его возможностей должно хватить. So, начнём!

Установка Docker

Не будем особо вдаваться в установку Docker, уже есть официальный гайд на эту тему, он тут.

Создаём контейнер

Для создания контейнера открываем командную строку/терминал и вводим следующую команду:

docker run -it --name centos_dev centos:latest /bin/bash

После этого вы войдёте в "терминал" контейнера под пользователем root. Для выхода в основную систему используйте команду exit. Пользуйтесь на здоровье!

Запускаем созданный контейнер

Если нужно снова запустить наш контейнер с CentOS то вводим следующую команду: \

docker start centos_dev
docker exec -it centos_dev /bin/bash

После этого у вас откроется уже знакомый вам "терминал", а система будет в том же состоянии, что и при предыдущем запуске. Удобно!

БОНУС (для линуксоидов)

Если ваша основная система - Linux, то можете использовать такой удобный скриптик для создания/запуска контейнера:

#!/bin/bash

CONTAINER_NAME="centos_dev"
IMAGE_NAME="centos:latest"

# Проверяем, существует ли контейнер
if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
    echo "Контейнер не существует. Создаем новый..."
    # Создаем новый контейнер
    docker run -it -d --name $CONTAINER_NAME $IMAGE_NAME
else
    echo "Контейнер уже существует."
    
    # Проверяем, запущен ли контейнер
    if [ ! "$(docker ps -q -f name=$CONTAINER_NAME)" ]; then
        echo "Контейнер остановлен. Запускаем..."
        docker start $CONTAINER_NAME
    fi
fi

# Подключаемся к терминалу контейнера
echo "Подключаемся к терминалу контейнера..."
docker exec -it $CONTAINER_NAME /bin/bash

После этого делаем файл исполняемым: chmod +x /путь_до_папки_с_скриптом_start_centos_sh/start_centos.sh и запускаем ./путь_до_папки_с_скриптом_start_centos_sh/start_centos.sh
А если у вас ещё в качестве терминала используется Konsole, то можно создать ярлык и закинуть его на рабочий стол, чтобы "терминал" контейнера запускался в один клик:

[Desktop Entry]
Categories=System;TerminalEmulator;
Comment[ru_RU]=Start CentOS Docker container
Comment=Start CentOS Docker container
Exec=konsole -e bash -c '"/путь_до_папки_с_скриптом/run_centos.sh"; read -p '\\''Нажмите Enter для выхода...'\\'''
GenericName[ru_RU]=
GenericName=
Icon=utilities-terminal
MimeType=
Name[ru_RU]=Start CentOS
Name=Start CentOS
Path=
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=

Также делаем файл исполняемым: chmod +x путь_до_папки_с_ярлыком/start_centos.desktop и в начало нашего файлика start_centos.sh добавляем:

#!/bin/bash

# Проверяем, запущен ли скрипт в терминале
if [ ! -t 0 ]; then
    # Если нет, запускаем новый терминал с этим скриптом
    konsole -e "$0"
    exit
fi

Готово!