Лучшая практика работы с Docker: 3 минуты, openEuler 22.03 LTS SP3 устанавливает Docker, все, что вам нужно, — это рука!
Лучшая практика работы с Docker: 3 минуты, openEuler 22.03 LTS SP3 устанавливает Docker, все, что вам нужно, — это рука!

2024 Практические документы по эксплуатации и обслуживанию Cloud Native, 2019 г. 99 оригинальный проект Нет. 002 Глава |Docker Серия лучших практик «2024» Нет. 002 Глава

Предисловие

Привет,добро пожаловать вКвалифицирован в эксплуатации и обслуживании

Контент, которым сегодня поделились, Docker Лучшая практика «2024» в серии документов openEuler 22.03 LTS SP3 Конфигурация установки Docker

Карта контента

openeluer-docker-mindmap
openeluer-docker-mindmap

Фактическая конфигурация сервера (копия архитектуры 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

Реальная боевая среда включает информацию о версии программного обеспечения.

  • Операционная система:openEuler 22.03 LTS SP3
  • Docker:24.0.7
  • Containerd:1.6.27

1. Почему стоит выбрать openEuler?

1.1 Политические причины

  • CentOS 7 будет внутри 30 июня 2024 г. Остановить техническое обслуживание в день
  • В эпоху после CentOS необходимо выбрать новый, готовый к использованию дистрибутив Linux.
  • RHEL Предложенные варианты не соответствуют моим потребностям(Производство доступно только RHEL
centos-end-select
centos-end-select
  • Требования к локализации операционной системы и адаптации Синьчуана становятся всё выше и быстрее.

Синьчуан: Индустрия инноваций в сфере информационных технологий стремится обеспечить национальную информационную безопасность путем реализации независимой управляемости в сфере информационных технологий.

  • Крупные операторы и различные производители дистрибутивов Linux также адаптировали и разработали свои собственные дистрибутивы Linux на основе Эйлера.
  • openEuler 2023 Год достигнута доля рынка 36.8% , став первой серверной операционной системой в Китае (данные поступают из Интернета, поиск по ключевым словам «Отчет об операционной системе сервера за 2023 год»)。
  • openEuler При поддержке Huawei(Одного этого достаточно

1.2 Технические причины

  • openEuler опыт использования близок к CentOS(основная причина
  • openEuler предоставляет инструмент обновления x2openEuler на месте, который может обновить исходную операционную систему до новой целевой операционной системы, используя технологию Эйлера.
  • Полная документация (очень важно)

Основываясь исключительно на личных соображениях, споров о выборе системы здесь не будет. Вы можете выбрать решение, которое лучше всего подходит вам, исходя из ваших реальных потребностей. (Нет лучшего, есть только самое подходящее)。

2. Базовая конфигурация операционной системы.

существовать Конфигурация установки Docker Прежде нам необходимо выполнить базовую настройку операционной системы.

2.1 Настройка имени хоста

Язык кода:shell
копировать
# Изменятьимя хоста
hostnamectl hostname docker-node-1

# Переключиться на новую терминальную сессию, проверитьимя хост успешно изменен
bash

2.2 Настройка DNS

Язык кода:shell
копировать
echo "nameserver 114.114.114.114" > /etc/resolv.conf

2.3 Настройка часового пояса сервера

Настройте часовой пояс сервера как Asia/Shanghai

Язык кода:shell
копировать
timedatectl set-timezone Asia/Shanghai

2.4 Настройка синхронизации времени

  • Установите Chrony как программу синхронизации времени.
Язык кода:shell
копировать
yum install chrony -y
  • Исправлять Конфигурационный файл /etc/chrony.conf, измените ntp Конфигурация сервера.
Язык кода:shell
копировать
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
  • Перезапустите и настройте службу Chrony на автоматический запуск при загрузке.
Язык кода:shell
копировать
systemctl enable chronyd --now
  • Проверьте статус синхронизации Chrony.
Язык кода:shell
копировать
chronyc sourcestats -v

2.5 Отключите системный брандмауэр

Язык кода:shell
копировать
systemctl stop firewalld && systemctl disable firewalld

2.6 Отключить SELinux

Язык кода:shell
копировать
# использовать sed Исправлять Конфигурационный файл, добиться тщательного Запрещать
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# использовать команду для реализации временного Запрещать
setenforce 0

3. Конфигурация диска операционной системы

Предварительные инструкции по настройке диска с данными (вы можете изменить их в соответствии со своими потребностями)

  • Добавьте новый диск с данными на сервер /dev/sdb,используется для Docker Постоянное хранилище для контейнеров и изображений.
  • Точка монтирования нового диска с данными — /data.

3.1 Настройка дисков с помощью LVM

Чтобы удовлетворить пожелания некоторых пользователей, может быть достигнуто динамическое расширение, когда емкость диска недостаточна после запуска производства в эксплуатацию. Эта статья принимает LVM способ Конфигурациядиск(Фактически, производственная среда, которую я поддерживаю, редко использует LVM.)。

  • Создать PV
Язык кода:bash
копировать
 pvcreate /dev/sdb
  • Создать ВГ
Язык кода:bash
копировать
vgcreate data /dev/sdb
  • Создать ЛВ
Язык кода:bash
копировать
# Вариант 1, использовать все пробелы, VG Имя data,LV Имя lvdata
lvcreate -l 100%VG data -n lvdata

# Вариант 2、использовать 100G космос 
lvcreate -L 100G data -n lvdata

3.2 Форматирование диска

Язык кода:shell
копировать
mkfs.xfs /dev/mapper/data-lvdata

3.3 Монтаж диска

  • Ручной монтаж
Язык кода:bash
копировать
mkdir /data
mount /dev/mapper/data-lvdata /data/
  • Автоматически монтировать при загрузке
Язык кода:bash
копировать
tail -1 /etc/mtab >> /etc/fstab

3.4 Создать каталог данных

  • создавать Docker каталог данных
Язык кода:bash
копировать
mkdir -p /data/docker

4. Установите и настройте движок Docker.

4.1 Знакомство со способами установки

Существует два распространенных метода установки Docker:

  • Операционная система Дистрибутив Установить пакет (RPM, Deb,Рекомендуемые способы использования онлайн-установки,Эта статья выбирает
  • Двоичный установочный пакет (подходит для автономного развертывания, интегрированного индивидуального развертывания)

При использовании решения установочного пакета дистрибутива операционной системы есть два варианта:

  • использоватьчиновник Скрипт,автоматический Конфигурация установки(Подходит для сред с неограниченными сетями
  • Руководство Конфигурация установки

Универсальный Linux Автоматическая установка и развертывание релизной версии Docker Метод заключается в следующем:

Язык кода:bash
копировать
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. При выполнении указанной выше команды сообщается о следующей ошибке:

Язык кода:bash
копировать
[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.

4.2 Настройка источников программного обеспечения

  • скачать repo Конфигурационный файл
Язык кода:shell
копировать
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
  • Измените источник установки на внутренний адрес.,Подходит для сред с ограниченным доступом к внешним сетям.
Язык кода:bash
копировать
sed -i 's#https://download.docker.com#https://mirrors.tuna.tsinghua.edu.cn/docker-ce#' /etc/yum.repos.d/docker-ce.repo
  • Операционная система, поддерживаемая источником программного обеспечения Docker, не включает openEuler.
docker-source-list
docker-source-list
  • openEuler Примерный способ использования Поэтому CentOS измените источник программного обеспечения. Конфигурация,использовать centos 7 источник программного обеспечения
Язык кода:bash
копировать
sed -i 's#$releasever#7#g' /etc/yum.repos.d/docker-ce.repo

4.3 Установите Докер

Если при использовании yum для установки Docker вы не укажете версию, по умолчанию будет установлена ​​последняя версия.

Язык кода:bash
копировать
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-pkg-25.0.1
docker-pkg-25.0.1

Сценарии со специальными требованиями к версии,Номер версии можно указать Установить。Рекомендации по производственной средеиспользовать Укажите номер версии。

  • Проверьте доступные версии
Язык кода:bash
копировать
yum list docker-ce --showduplicates | sort -r
  • Результаты запроса следующие
Язык кода:bash
копировать
[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
...(Ограничено главой, с некоторыми удалениями)
  • Установить указанную версию
Язык кода:bash
копировать
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 версия больше подходит.

4.4 Настройка Докера

Индивидуальная конфигурация, модификация Docker Конфигурационный файл /etc/docker/daemon.json

Язык кода:bash
копировать
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

4.5 Запустить Докер

Запустите службу Docker и настройте ее автоматический запуск при загрузке.

Язык кода:bash
копировать
systemctl enable docker --now

4.6 Проверка Докера

  • Просмотр информации о Docker
Язык кода:bash
копировать
 docker info
  • использоватьзеркало hello-world создать тестовый контейнер
Язык кода:bash
копировать
 docker run hello-world

5. Автоматизированные сценарии оболочки

5 Минуты на завершение Docker из Конфигурация установки,Ядро здесь

Все операции в полном тексте я скомпилировал в скрипт автоматической установки:

  • Скрипт автоматизации deploy-docker.sh
Язык кода:bash
копировать
#!/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
  • использоватьметод
Язык кода:bash
копировать
# использоватьпо умолчаниюимя хост и номер версии
sh deploy-docker.sh

# использовать Настроитьимя хост и номер версии
sh deploy-docker.sh node-1 25.0.0

6. Часто задаваемые вопросы

6.1 Вопрос 1

  • Проблемное явление

Docker Запуск не удался systemctl start docker

Язык кода:bash
копировать
# 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
  • решение
Язык кода:bash
копировать
Конфигурационный файл Есть "storage-opts": ["overlay2.override_kernel_check=true"], просто удалите эту опцию.

# Подробную информацию см. Docker Официальная документация
https://docs.docker.com/engine/deprecated/#support-for-the-overlay2override_kernel_check-storage-option

7. Домашнее задание после занятий.

На основе того, что вы узнали из этой статьи, пожалуйста, выполните следующие практические задания.

  1. Установите openEuler22.03 LTS SP3.
  2. Вручную установите версию движка Docker по умолчанию.
  3. использовать Скрипт автоматизации Установить 24.0.7 версия Docker двигатель
  4. Опыт ручной работы Установитьиавтоматизация Установитьразница в скорости(Повышайте осведомленность об автоматизации

8. Резюме

В этой статье описывается подробный процесс и меры предосторожности при развертывании Docker в среде openEuler22.03 LTS SP3. Основное содержание резюмируется следующим образом:

  • Конфигурация инициализации системы openEuler 22.03 LTS SP3
  • openEuler 22.03 LTS SP3 управление дисками
  • Установите и разверните Docker с помощью пакетов RPM.
  • Автоматизация установки и развертывания Docker

Получите практическое видео из этой статьи.(пожалуйста, обрати внимание,Асинхронный выпуск документального видео,пожалуйста, сначаласосредоточиться на)

Отказ от ответственности:

  • Уровень автора ограничен,Несмотря на множество проверок и проверок,Мы прилагаем все усилия для обеспечения точности содержания.,Однако могут быть и пропуски。Пожалуйста, дайте свой совет экспертам отрасли.。
  • Содержимое, описанное в этой статье, было проверено только в реальной боевой обстановке.,Читатели могут учиться и извлекать уроки из,ноКатегорически запрещено использовать непосредственно в производственной среде.Автор не несет ответственности за любые проблемы, возникшие в связи с этим.

Заключение

Если вам понравилась эта статья, поделитесь, добавьте в избранное, поставьте лайк и прокомментируйте! Пожалуйста, продолжайте обращать внимание @ Опытные в эксплуатации и обслуживании, вовремя смотрите больше хороших статей!

Добро пожаловать присоединиться «Навыки эксплуатации и технического обслуживания · Практический учебный лагерь Cloud Native» , получи больше Практические навыки работы с KubeSphere, Kubernetes, а также работой и обслуживанием облачных технологий.

Заявление об авторских правах

  • Весь контент принадлежит оригиналу,Спасибо, что прочитали и собрали,Пожалуйста, свяжитесь с нами для получения разрешения на перепечатку. Воспроизведение без разрешения запрещено.
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose