15%

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

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

Използвайте код:

Skills
За начало
31.10.2024
1 +1

Как да инсталирате 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’s storage backend

Тези зависимости гарантират, че 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 (контейнерния runtime) заедно с основния двигател за пълна, готова за производство настройка.

Това инсталира 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 за потребители без root (Опционално, но препоръчано)

По подразбиране, Docker командите изискват sudo (root привилегии). За сигурност и удобство в среди за разработка, можете да позволите на конкретни потребители без 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 демона

Можете да персонализирате поведението на 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

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

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

Конфигуриране на правилата на защитната стена (CentOS 7)

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

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

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

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

  • VPS Hosting — Идеален за повечето Docker внедрявания. Пълен root достъп, мащабируеми ресурси и рентабилни цени правят VPS предпочитания избор за контейнеризирани приложения.
15%

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

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

Използвайте код:

Skills
За начало