2024 Практические документы по эксплуатации и обслуживанию Cloud Native, 2019 г. 99 оригинальный проект Нет. 008 Глава |Docker Серия лучших практик «2024» Нет. 008 Глава
Привет,добро пожаловать вКвалифицирован в эксплуатации и обслуживании。
Контент, которым сегодня поделились, Docker Лучшая практика «2024» в серии документов Docker и Docker Compose Практика автономного развертывания。
карта содержания
Фактическая конфигурация сервера (копия архитектуры 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 Загрузите бинарный пакет с официального сайта и загрузите его на сервер развертывания. /srv
Оглавление(Персональная настройка Установитьпрограммное обеспечениеи Данные размещаются здесь по умолчанию Оглавление)。
# wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.9.tgz
cd /srv
/usr/local/bin
Оглавление Внизtar xvf docker-24.0.9.tgz
mv docker/* /usr/local/bin/
rm -rf docker
иллюстрировать: Персональная услуга индивидуальной установки bin Файлы хранятся в /usr/local/bin/ каталог, его можно разместить по любому пути при фактическом использовании.
# [root@docker-node-1 srv]# tar xvf docker-24.0.9.tgz
docker/
docker/docker-proxy
docker/docker-init
docker/containerd-shim-runc-v2
docker/dockerd
docker/containerd
docker/docker
docker/runc
docker/ctr
echo "export PATH=$PATH:/usr/local/bin" >> /etc/profile.d/docker.sh
проиллюстрировать: Не помещайте персонализированную конфигурацию переменных среды в /etc/profile документ, рекомендуется /etc/profile.d/ Создайте новый файл конфигурации с именем службы в каталоге.
source /etc/profile
docker version
# Потому что Докер Служить еще не запустить. При выполнении команды вы видите следующее. Client изинформация)
[root@docker-node-1 srv]# docker version
Client:
Version: 24.0.9
API version: 1.43
Go version: go1.20.13
Git commit: 2936816
Built: Thu Feb 1 00:47:46 2024
OS/Arch: linux/amd64
Context: default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
чтобы достичь Docker Персонализированная конфигурация услуг, нам необходимо настроить daemon.json
файл конфигурации.
mkdir /etc/docker
/etc/docker/daemon.json
cat > /etc/docker/daemon.json <<EOF
{
"data-root": "/data/docker",
"exec-opts": [
"native.cgroupdriver=systemd"
],
"log-level": "info",
"log-opts": {
"max-size": "100m",
"max-file": "5"
},
"storage-driver": "overlay2"
}
EOF
проиллюстрировать:
data-root обозначение Docker Каталог данных по умолчанию для службы: /data/docker Для использования в производственной среде подключите независимый диск с данными. /data Оглавление
Чтобы удобно управлять службами Docker в повседневном использовании, мы пишем файлы конфигурации systemd для управления службами Docker.
cat > /usr/lib/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
#BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
#Requires=docker.socket
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
#Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable docker --now
[root@docker-node-1 srv]# docker info
Client:
Version: 24.0.9
Context: default
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 24.0.9
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7c3aca7a610df76212171d200ca3811ff6096eb8
runc version: v1.1.12-0-g51d5e94
init version: de40ad0
Security Options:
seccomp
Profile: builtin
Kernel Version: 5.10.0-153.51.0.129.oe2203sp2.x86_64
Operating System: openEuler 22.03 (LTS-SP2)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.261GiB
Name: docker-node-1
ID: ba867abb-8ca1-440b-9376-0d335a8886ae
Docker Root Dir: /data/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
На машине с доступом в Интернет начните с docker Загрузите бинарный пакет с официального сайта и загрузите его на сервер развертывания. /srv Оглавление(Персональная настройка Установитьпрограммное обеспечениеи Данные размещаются здесь по умолчанию Оглавление)。
# curl -L https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
cd /srv
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
[root@docker-node-1 srv]# docker-compose version
Docker Compose version v2.24.7
Далее мы используем docker-compose Создайте использование busybox Зеркальный контейнер, тест и проверка Docker и docker-compose Правильна ли конфигурация установки.
name: busybox
services:
busybox:
container_name: busybox
image: busybox
command: /bin/sh -c "sleep 3600"
[root@docker-node-1 srv]# docker-compose up -d
[+] Running 2/2
✔ busybox 1 layers [⣿] 0B/0B Pulled 6.4s
✔ 7b2699543f22 Pull complete 2.2s
[+] Running 1/2
⠼ Network busybox_default Created 0.4s
✔ Container busybox Started 0.3s
[root@docker-node-1 srv]# docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
busybox busybox "/bin/sh -c 'sleep 3…" busybox 41 seconds ago Up 41 seconds
# удалить
[root@docker-node-1 srv]# docker-compose down
[+] Running 2/2
✔ Container busybox Removed 10.2s
✔ Network busybox_default Removed 0.1s
# Проверятьпроверять
[root@docker-node-1 srv]# docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
Все действия в статье,Все организовано как автоматизация Скрипт,Из-за ограничения главы,В этом документе не показано.
Участники Планеты, пожалуйста, посетите склад эксклюзивных кодов.Внизнагрузка(Ценный контент, эксклюзивный только для участников Planet)。
# docker Служитьзапускатьнеудача
# Проверять journalctl Журнал ошибок
[root@docker-node-1 srv]# journalctl -xe
░░ Subject: Process /usr/local/bin/dockerd could not be executed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ The process /usr/local/bin/dockerd could not be executed and failed.
░░
░░ The error number returned by this process is ERRNO.
Apr 21 11:10:44 docker-node-1 (dockerd)[18962]: docker.service: Failed at step EXEC spawning /usr/local/bin/dockerd: Permission denied
# Проверять messages бревно
[root@docker-node-1 srv]# tail /var/log/messages -n 20
Apr 21 11:10:46 docker-node-1 systemd[1]: Starting Docker Application Container Engine...
Apr 21 11:10:46 docker-node-1 (dockerd)[18966]: docker.service: Failed to locate executable /usr/local/bin/dockerd: Permission denied
Apr 21 11:10:46 docker-node-1 (dockerd)[18966]: docker.service: Failed at step EXEC spawning /usr/local/bin/dockerd: Permission denied
# закрытие selinux (вступает в силу после перезапуска сервера Служить)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# Временное закрытие (вступает в силу немедленно)
setenforce 0
В этой статье рассказывается об автономном развертывании с использованием двоичных файлов. Docker и Docker-Compose Подробные процедуры и меры предосторожности. Основное содержание резюмируется следующим образом:
Отказ от ответственности:
Получите практическое видео из этой статьи.(пожалуйста, обрати внимание,Асинхронный выпуск документального видео,пожалуйста, сначаласосредоточиться на)
Если вам понравилась эта статья, поделитесь, добавьте в избранное, поставьте лайк и прокомментируйте! Пожалуйста, продолжайте обращать внимание @Operation&Maintenance Юшу, жди новых хороших статей!
Добро пожаловать присоединиться «Планета знаний|Навыки эксплуатации и технического обслуживания» , получи больше KubeSphere, Kubernetes, облачная эксплуатация и обслуживание, автоматизированная эксплуатация и обслуживание, искусственный интеллект Практические навыки, такие как большие модели。В будущей карьере оператора и технического обслуживания я всегда буду сидеть в роли вашего второго пилота.。
Заявление об авторских правах