2024 Практические документы по эксплуатации и обслуживанию Cloud Native, 2019 г. 99 оригинальный проект Нет. 002 Глава |Docker Серия лучших практик «2024» Нет. 002 Глава
Привет,добро пожаловать вКвалифицирован в эксплуатации и обслуживании。
Контент, которым сегодня поделились, Docker Лучшая практика «2024» в серии документов openEuler 22.03 LTS SP3 Конфигурация установки Docker。
Карта контента
Фактическая конфигурация сервера (копия архитектуры 1:1 мелкомасштабной производственной среды, конфигурация немного отличается)
имя хоста | IP | ЦП (ядро) | Память (ГБ) | Системный диск (ГБ) | Диск с данными (ГБ) | использовать |
---|---|---|---|---|---|---|
docker-node-1 | 192.168.9.81 | 4 | 16 | 40 | 100 | Докер-узел 1 |
docker-node-2 | 192.168.9.82 | 4 | 16 | 40 | 100 | Докер-узел 2 |
docker-node-3 | 192.168.9.83 | 4 | 16 | 40 | 100 | Докер-узел 3 |
общий | 3 | 12 | 48 | 120 | 300 |
Реальная боевая среда включает информацию о версии программного обеспечения.
Синьчуан: Индустрия инноваций в сфере информационных технологий стремится обеспечить национальную информационную безопасность путем реализации независимой управляемости в сфере информационных технологий.
Основываясь исключительно на личных соображениях, споров о выборе системы здесь не будет. Вы можете выбрать решение, которое лучше всего подходит вам, исходя из ваших реальных потребностей. (Нет лучшего, есть только самое подходящее)。
существовать Конфигурация установки Docker Прежде нам необходимо выполнить базовую настройку операционной системы.
# Изменятьимя хоста
hostnamectl hostname docker-node-1
# Переключиться на новую терминальную сессию, проверитьимя хост успешно изменен
bash
echo "nameserver 114.114.114.114" > /etc/resolv.conf
Настройте часовой пояс сервера как Asia/Shanghai。
timedatectl set-timezone Asia/Shanghai
yum install chrony -y
vi /etc/chrony.conf
# Удалить все pool Конфигурация
pool pool.ntp.org iburst
# увеличить внутренний ntp сервер или укажите другие часто используемые серверы времени
pool cn.pool.ntp.org iburst
# Вышеупомянутую ручную операцию также можно выполнить с помощью sed автоматическая замена
sed -i 's/^pool pool.*/pool cn.pool.ntp.org iburst/g' /etc/chrony.conf
systemctl enable chronyd --now
chronyc sourcestats -v
systemctl stop firewalld && systemctl disable firewalld
# использовать sed Исправлять Конфигурационный файл, добиться тщательного Запрещать
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# использовать команду для реализации временного Запрещать
setenforce 0
Предварительные инструкции по настройке диска с данными (вы можете изменить их в соответствии со своими потребностями)
Чтобы удовлетворить пожелания некоторых пользователей, может быть достигнуто динамическое расширение, когда емкость диска недостаточна после запуска производства в эксплуатацию. Эта статья принимает LVM способ Конфигурациядиск(Фактически, производственная среда, которую я поддерживаю, редко использует LVM.)。
pvcreate /dev/sdb
vgcreate data /dev/sdb
# Вариант 1, использовать все пробелы, VG Имя data,LV Имя lvdata
lvcreate -l 100%VG data -n lvdata
# Вариант 2、использовать 100G космос
lvcreate -L 100G data -n lvdata
mkfs.xfs /dev/mapper/data-lvdata
mkdir /data
mount /dev/mapper/data-lvdata /data/
tail -1 /etc/mtab >> /etc/fstab
mkdir -p /data/docker
Существует два распространенных метода установки Docker:
При использовании решения установочного пакета дистрибутива операционной системы есть два варианта:
Универсальный Linux Автоматическая установка и развертывание релизной версии Docker Метод заключается в следующем:
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
# как тыиспользовать curl
curl -fsSL https://get.docker.com/ | sh
# как тыиспользовать wget
wget -O- https://get.docker.com/ | sh
Однако приведенный выше метод по умолчанию не поддерживает openEuler. При выполнении указанной выше команды сообщается о следующей ошибке:
[root@docker-node-1 ~]# export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
[root@docker-node-1 ~]# curl -fsSL https://get.docker.com/ | sh
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
ERROR: Unsupported distribution 'openeuler'
проиллюстрировать: Фактически, вы можете загрузить сценарий установки и изменить его содержимое для достижения openEuler Автоматизированная установка Docker。
Поэтому в этой статье выбрано решение ручной установки и развертывания пакетов RPM.
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
sed -i 's#https://download.docker.com#https://mirrors.tuna.tsinghua.edu.cn/docker-ce#' /etc/yum.repos.d/docker-ce.repo
sed -i 's#$releasever#7#g' /etc/yum.repos.d/docker-ce.repo
Если при использовании yum для установки Docker вы не укажете версию, по умолчанию будет установлена последняя версия.
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Сценарии со специальными требованиями к версии,Номер версии можно указать Установить。Рекомендации по производственной средеиспользовать Укажите номер версии。
yum list docker-ce --showduplicates | sort -r
[root@docker-node-1 ~]# yum list docker-ce --showduplicates | sort -r
Last metadata expiration check: 0:00:57 ago on Fri 26 Jan 2024 02:55:31 PM CST.
docker-ce.x86_64 3:25.0.1-1.el7 docker-ce-stable
docker-ce.x86_64 3:25.0.0-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.8-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.7-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.6-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.5-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.4-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.3-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.2-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.1-1.el7 docker-ce-stable
docker-ce.x86_64 3:24.0.0-1.el7 docker-ce-stable
...(Ограничено главой, с некоторыми удалениями)
yum install docker-ce-24.0.7 docker-ce-cli-24.0.7 docker-ce-rootless-extras-24.0.7 containerd.io docker-buildx-plugin docker-compose-plugin -y
проиллюстрировать: Для этой статьи выбрана версия 24.0.7. В производственной среде лично я не рекомендую использовать последнюю версию. Условно говоря, выбор отстает от последней версии. 1 к 2 версия больше подходит.
Индивидуальная конфигурация, модификация Docker Конфигурационный файл /etc/docker/daemon.json
。
cat > /etc/docker/daemon.json << "EOF"
{
"data-root": "/data/docker",
"registry-mirrors": [
"https://registry.hub.docker.com",
"https://mirror.baidubce.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"log-opts": {
"max-size": "10m",
"max-file":"3"
},
"storage-driver": "overlay2",
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
проиллюстрировать: Пожалуйста, настройте следующие параметры в соответствии с реальной ситуацией. корень данных: каталог данных зеркала реестра: обычно используются Registry прокси-сервер log-opts: Log Максимальная емкость файла установлена на 50 МБ, по умолчанию 10MB(Должен основываться на реальных потребностяхнастраивать,Ни слишком большой, ни слишком маленький не подходит,Если вы не уверены, пожалуйста, обратитесь к значению по умолчанию) exec-opts: Настроен cgroup driver использовать systemd, для Kubernetes Сценарий,Докер по умолчаниюиспользовать cgroupfs
Запустите службу Docker и настройте ее автоматический запуск при загрузке.
systemctl enable docker --now
docker info
hello-world
создать тестовый контейнер docker run hello-world
5 Минуты на завершение Docker из Конфигурация установки,Ядро здесь!
Все операции в полном тексте я скомпилировал в скрипт автоматической установки:
deploy-docker.sh
#!/bin/bash
# author:@Квалифицирован в эксплуатации и обслуживании
# Usage:автоматический Установить Docker 24.0.7
set -e
# настраиватьимя хоста, по умолчанию docker-node-1
hostname=${1:-"docker-node-1"}
# настраивать Docker версия, по умолчанию 24.0.7
docker_ver=${2:-"24.0.7"}
# Базовая конфигурация операционной системы
function sys_init(){
hostnamectl hostname ${hostname}
echo "nameserver 114.114.114.114" > /etc/resolv.conf
timedatectl set-timezone Asia/Shanghai
yum install chrony -y
sed -i 's/^pool pool.*/pool cn.pool.ntp.org iburst/g' /etc/chrony.conf
systemctl enable chronyd --now
chronyc sourcestats -v
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
}
# диск Конфигурация
function disk_init(){
pvcreate /dev/sdb
vgcreate data /dev/sdb
lvcreate -l 100%VG data -n lvdata
mkfs.xfs /dev/mapper/data-lvdata
mkdir /data
mount /dev/mapper/data-lvdata /data/
tail -1 /etc/mtab >> /etc/fstab
}
# Конфигурация установки Docker
function docker_install(){
mkdir -p /data/docker
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
sed -i 's#https://download.docker.com#https://mirrors.tuna.tsinghua.edu.cn/docker-ce#' /etc/yum.repos.d/docker-ce.repo
sed -i 's#$releasever#7#g' /etc/yum.repos.d/docker-ce.repo
yum install docker-ce-${docker_ver} docker-ce-cli-${docker_ver} docker-ce-rootless-extras-${docker_ver} containerd.io docker-buildx-plugin docker-compose-plugin -y
cat > /etc/docker/daemon.json <<- EOF
{
"data-root": "/data/docker",
"registry-mirrors": [
"https://registry.hub.docker.com",
"https://mirror.baidubce.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"log-opts": {
"max-size": "10m",
"max-file":"3"
},
"storage-driver": "overlay2",
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# запускать Служить&&Автоматический запуск при загрузке
systemctl enable docker --now
}
function docker_check(){
docker info
docker run hello-world
}
sys_init
disk_init
docker_install
docker_check
# использоватьпо умолчаниюимя хост и номер версии
sh deploy-docker.sh
# использовать Настроитьимя хост и номер версии
sh deploy-docker.sh node-1 25.0.0
Docker Запуск не удался systemctl start docker
# journalctl -xeu docker.service
Сообщить об ошибке
Failed to start Docker Application Container Engine.
# Проверять /var/log/messages ,важный Сообщить об ошибкеинформация
failed to start daemon: error initializing graphdriver: overlay2: unknown option overlay2.override_kernel_check: overlay2
Конфигурационный файл Есть "storage-opts": ["overlay2.override_kernel_check=true"], просто удалите эту опцию.
# Подробную информацию см. Docker Официальная документация
https://docs.docker.com/engine/deprecated/#support-for-the-overlay2override_kernel_check-storage-option
На основе того, что вы узнали из этой статьи, пожалуйста, выполните следующие практические задания.
В этой статье описывается подробный процесс и меры предосторожности при развертывании Docker в среде openEuler22.03 LTS SP3. Основное содержание резюмируется следующим образом:
Получите практическое видео из этой статьи.(пожалуйста, обрати внимание,Асинхронный выпуск документального видео,пожалуйста, сначаласосредоточиться на)
Отказ от ответственности:
Если вам понравилась эта статья, поделитесь, добавьте в избранное, поставьте лайк и прокомментируйте! Пожалуйста, продолжайте обращать внимание @ Опытные в эксплуатации и обслуживании, вовремя смотрите больше хороших статей!
Добро пожаловать присоединиться «Навыки эксплуатации и технического обслуживания · Практический учебный лагерь Cloud Native» , получи больше Практические навыки работы с KubeSphere, Kubernetes, а также работой и обслуживанием облачных технологий.
Заявление об авторских правах