Спестете 15% от всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код: Skills За начало
Заглавия
Linux Администрация

Как да инсталирате Docker на CentOS: Пълно ръководство стъпка по стъпка

Docker е коренно променил начина, по който разработчиците изграждат, доставят и пускат приложения. Чрез пакетиране на софтуер в лекотни, преносими контейнери, Docker елиминира класическия проблем “работи на моята машина” и драматично опростява както работните процеси на разработка, така и внедряването в производство. Ако работите на CentOS и искате да използвате силата на контейнеризацията, това всеобхватно ръководство ви преведе през всяка стъпка — от свежо актуализиране на системата до напредналата конфигурация.

Независимо дали внедрявате едно уеб приложение или организирате сложни многоконтейнерни среди, правилното инсталиране на Docker на CentOS е критичната първа стъпка.

Предварителни изисквания

Преди да започнете, уверете се, че имате:

  • CentOS 7 или CentOS 8 сервър (физически или виртуален)
  • Потребителски акаунт с sudo привилегии
  • Стабилна интернет връзка
  • Основни познания за командния ред на Linux

> Полезен съвет: За най-добрия Docker опит, помислете да го стартирате на VPS Hosting план. Виртуалният частен сервър ви дава пълен root достъп, посветени ресурси и гъвкавост да стартирате контейнери без ограниченията на споделените среди.

Стъпка 1: Актуализиране на системата

Преди инсталирането на нов софтуер, винаги актуализирайте съществуващите пакети, за да осигурите съвместимост и сигурност. Изпълнете следната команда:

sudo yum update -y

Тази команда опреснява всички инсталирани пакети до техните най-нови версии. Това може да отнеме няколко минути в зависимост от броя на очакващите актуализации. Напълно актуализирана система намалява риска от конфликти на зависимостите по време на инсталирането на Docker.

Стъпка 2: Инсталирайте необходимите зависимости

Docker разчита на няколко пакета на системно ниво, за да функционира правилно. Инсталирайте ги с една команда:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Ето какво прави всеки пакет:

ПакетПредназначение
yum-utilsОсигурява yum-config-manager утилита за управление на хранилища
device-mapper-persistent-dataНеобходимо за драйвера за съхранение на Docker device mapper
lvm2Поддръжка на Logical Volume Manager за Docker хранилищния бекенд

Тези зависимости гарантират, че Docker може да управлява съхранението на контейнери ефективно и надежно на вашата CentOS система.

Стъпка 3: Добавяне на официалното хранилище на Docker

Хранилищата на пакети по подразбиране на CentOS не включват най-новите пакети на Docker. Трябва да добавите официалното хранилище на Docker, за да получите най-новото, стабилно издание:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Тази команда добавя официалното хранилище на Docker за CentOS към списъка с хранилища на вашата система. Използването на официалния източник гарантира, че ще получите оригинални, актуални пакети на Docker директно от Docker Inc., вместо потенциално остарели версии от хранилища на трети страни.

Можете да проверите дали хранилището е добавено успешно, като изведете списъка на конфигурираните хранилища:

sudo yum repolist

Стъпка 4: Инсталиране на Docker Engine

С хранилището на място, инсталирането на Docker е просто:

sudo yum install -y docker-ce docker-ce-cli containerd.io

> Забележка: Препоръчва се също да инсталирате docker-ce-cli (интерфейсът на командния ред на Docker) и containerd.io (контейнерната среда за изпълнение) заедно с основния двигател за пълна, готова за производство настройка.

Това инсталира Docker Community Edition (CE) — безплатната, с отворен код версия на Docker, която е идеална както за разработка, така и за производствени работни натоварвания.

Стъпка 5: Стартиране и активиране на Docker услугата

Инсталирането на Docker не го стартира автоматично. Трябва да стартирате Docker демона и да го конфигурирате да се стартира автоматично при зареждане на системата:

sudo systemctl start docker
sudo systemctl enable docker
  • systemctl start docker — Стартира Docker услугата веднага
  • systemctl enable docker — Конфигурира Docker да се стартира автоматично всеки път, когато сървърът се рестартира

Проверка на статуса на услугата

Потвърдете, че Docker работи правилно:

sudo systemctl status docker

Трябва да видите изход, указващ, че услугата е активна (работи). Ако статусът показва някакви грешки, прегледайте системните логове с journalctl -u docker за детайли при отстраняване на неизправности.

Стъпка 6: Проверка на инсталацията на Docker

Изпълнете вградения тест на Docker, за да потвърдите, че всичко работи както се очаква:

sudo docker run hello-world

Тази команда прави следното:

  1. Свързва се с регистъра Docker Hub
  2. Изтегля лекия hello-world тестов образ
  3. Създава нов контейнер от този образ
  4. Изпълнява контейнера, който отпечатва потвърждаващо съобщение

Ако инсталацията е успешна, ще видите изход, който започва с:

Hello from Docker!
This message shows that your installation appears to be working correctly.

Поздравления — Docker е сега напълно инсталиран и работещ на вашия CentOS сървър.

Стъпка 7: Конфигуриране на Docker за непривилегирани потребители (Опционално, но препоръчано)

По подразбиране, командите на Docker изискват sudo (root привилегии). За безопасност и удобство в среди за разработка, можете да позволите на конкретни непривилегирани потребители да изпълняват Docker команди, като ги добавите към групата docker.

Създаване на Docker групата

В повечето случаи тази група се създава автоматично при инсталацията. Ако не е създадена, създайте я ръчно:

sudo groupadd docker

Добавяне на вашия потребител към Docker групата

Заменете your_username с действителното Linux потребителско име:

sudo usermod -aG docker your_username

Прилагане на промените

Излезте и влезте отново, за да обновите членството си в групата. Алтернативно, активирайте промяната в текущата сесия:

newgrp docker

Тестване без Sudo

docker run hello-world

Ако това се изпълни без sudo и без грешка при разрешение, конфигурацията работи правилно.

> Предупреждение за безопасност: Групата docker предоставя привилегии, еквивалентни на потребителя root. Добавяйте само доверени потребители към тази група в производствени среди.

Стъпка 8: Справочник на основните Docker команди

Когато Docker е работещ, ето най-важните команди, които ще използвате ежедневно:

Управление на контейнери

# List all running containers
docker ps

# List all containers (including stopped ones)
docker ps -a

# Start a stopped container
docker start container_id

# Stop a running container
docker stop container_id

# Remove a container
docker rm container_id

# Remove all stopped containers at once
docker container prune

Управление на изображения

# List all locally stored images
docker images

# Pull an image from Docker Hub
docker pull image_name

# Pull a specific version/tag
docker pull image_name:tag

# Remove a local image
docker rmi image_name

# Remove all unused images
docker image prune -a

Стартиране на контейнери

# Run a container interactively
docker run -it image_name /bin/bash

# Run a container in detached (background) mode
docker run -d image_name

# Run a container with port mapping
docker run -d -p 8080:80 image_name

# Run a container with a custom name
docker run -d --name my_container image_name

Преглед на логове и статистика

# View container logs
docker logs container_id

# Follow live log output
docker logs -f container_id

# View real-time resource usage
docker stats

Стъпка 9: Потвърдете, че Docker се стартира при включване

Docker вече трябва да бъде конфигуриран да се стартира при включване след изпълнение на systemctl enable docker. За да проверите отново или да активирате отново това поведение:

sudo systemctl enable docker

За да деактивирате автоматичното стартиране (например на машина за разработка, където не винаги имате нужда от Docker):

sudo systemctl disable docker

Стъпка 10: Разширена конфигурация (Опционално)

Инсталирайте Docker Compose

Docker Compose е съществено средство за дефиниране и управление на приложения с множество контейнери, използвайки прост YAML конфигурационен файл. Инсталирайте най-новата стабилна версия:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Проверете инсталацията:

docker-compose --version

С Docker Compose можете да дефинирате цели приложни стекове — уеб сървъри, бази данни, кешове — в един docker-compose.yml файл и да ги стартирате всички с една команда: docker-compose up -d.

Конфигурирайте Docker Daemon

Можете да персонализирате поведението на Docker, като редактирате (или създадете) конфигурационния файл на демона:

sudo nano /etc/docker/daemon.json

Пример на обща конфигурация:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "default-address-pools": [
    {"base": "172.17.0.0/16", "size": 24}
  ]
}

След редактиране на конфигурацията на демона, рестартирайте Docker, за да приложите промените:

sudo systemctl restart docker

Общите настройки на демона, които можете да конфигурирате, включват:

  • Log драйвер и ротация — Предотвратете логовете на контейнера да консумират цялото дисково пространство
  • Storage драйверoverlay2 е препоръчаният драйвер за CentOS
  • DNS настройки — Задайте персонализирани DNS сървъри за контейнери
  • Registry огледала — Ускорете издърпването на изображения с локални огледала

Конфигурирайте правила на Firewall (CentOS 7)

Ако работите с firewalld, може да е необходимо да разрешите мрежния трафик на Docker:

sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload

Избор на правилната хостинг среда за Docker

Пускането на Docker в production изисква надежда, висока производителност сървърна среда. Ето най-добрите опции в зависимост от вашия случай на употреба:

  • VPS Хостинг — Идеален за повечето Docker разгръщания. Пълен root достъп, мащабируеми ресурси и рентабилни цени правят VPS първия избор за контейнеризирани приложения.
  • Dedicated Servers — Най-добро за среди с висок трафик в production или когато имате нужда от максимална CPU, RAM и производителност на хранилището за пускане на дузини контейнери едновременно.
  • GPU Хостинг — Перфектно за AI/ML работни натоварвания, работещи вътре в Docker контейнери, които изискват GPU ускорение за обучение на модели или inference.
  • VPS с cPanel — Ако имате нужда от Docker заедно с удобен контролен панел за управление на уебсайтове и имейл, тази комбинация предлага най-доброто от двата света.

Отстраняване на често срещани проблеми с Docker на CentOS

Docker Daemon не се стартира

Проверете системните логове за детайли на грешката:

journalctl -u docker --no-pager | tail -50

Грешки при отказ на разрешение

Ако видите Got permission denied while trying to connect to the Docker daemon socket, убедете се, че вашият потребител е в групата docker и че сте излезли и отново влезли.

Не може да издърпа образи

Проверете дали вашият сървър има изходящ интернет достъп и че DNS разрешава правилно:

curl -I https://registry-1.docker.io

Проблеми с мрежата на контейнера

Рестартирайте Docker, за да преинициализирате мрежовите мостове:

sudo systemctl restart docker

Заключение

Вече успешно инсталирахте Docker на CentOS и имате солидна основа за работа с контейнери. Ето бърз преглед на това, което беше разгледано:

  1. ✅ Актуализирахте системата и инсталирахте зависимости
  2. ✅ Добавихте официалния Docker хранилище
  3. ✅ Инсталирахте Docker CE и проверихте инсталацията
  4. ✅ Конфигурирахте Docker да се стартира при включване
  5. ✅ Настроихте достъп за потребител без root
  6. ✅ Научихте се на основни Docker команди
  7. ✅ Инсталирахте Docker Compose за управление на множество контейнери
  8. ✅ Изследвахте опции за конфигурация на демона

Docker на CentOS отваря свят от възможности — от изпълнение на изолирани среди за разработка до развертане на мащабируеми архитектури на микросервизи в производство. Уменията за контейнеризация, които развивате тук, ще служат като основа за по-напредни теми като Kubernetes оркестрация, CI/CD конвейери и разработка на облачни приложения.

За най-добрия Docker опит, уверете се, че вашата серверна среда е в състояние да се справи със задачата. Изследвайте планите за VPS хостинг на AlexHost за мощна, надежна и достъпна основа за всички ваши контейнеризирани работни натоварвания.