Docker容器化高可用架构部署方案(二)
01-环境准备本文档详细介绍部署前的环境准备工作包括操作系统要求、Docker安装、内核参数配置和网络确认。系统要求硬件要求CPU至少2核心内存至少4GB磁盘至少40GB可用空间操作系统OpenEuler 24.03 SP3或其他Linux发行版CentOS 7, Ubuntu 18.04, Debian 10网络要求物理网卡名称确认为ens33能够访问互联网以下载Docker镜像Docker安装在所有节点执行以下步骤1. 更新系统包# CentOS/RHEL/OpenEuler sudo dnf update -y # Ubuntu/Debian sudo apt update sudo apt upgrade -y2. 安装依赖包# CentOS/RHEL/OpenEuler sudo dnf install -y yum-utils device-mapper-persistent-data lvm2 # Ubuntu/Debian sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release3. 添加Docker官方GPG密钥curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/centos/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg4. 添加Docker仓库# CentOS/RHEL/OpenEuler sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Ubuntu/Debian echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null5. 安装Docker Engine# CentOS/RHEL/OpenEuler sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Ubuntu/Debian sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin6. 启动Docker服务sudo systemctl enable docker sudo systemctl start docker7. 验证Docker安装docker --version docker compose version预期输出Docker version 27.x.x, build xxxxxx Docker Compose version v2.x.x8. 配置Docker开机自启sudo systemctl enable docker可选配置Docker镜像加速sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json EOF { registry-mirrors: [ https://docker.mirrors.ustc.edu.cn, https://hub-mirror.c.163.com ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker内核参数配置Macvlan支持Macvlan网络需要内核支持以下配置确保内核参数正确。1. 确认内核模块已加载# 检查macvlan模块 lsmod | grep macvlan # 如果没有输出加载模块 sudo modprobe macvlan2. 永久加载macvlan模块echo macvlan | sudo tee /etc/modules-load.d/macvlan.conf3. 配置内核参数# 创建配置文件 sudo tee /etc/sysctl.d/99-docker.conf EOF # 允许容器使用IPv4转发 net.ipv4.ip_forward 1 # 允许容器使用IPv6转发如果需要 net.ipv6.conf.all.forwarding 1 # 允许容器使用ARP代理 net.ipv4.conf.all.proxy_arp 1 net.ipv6.conf.all.forwarding 1 # Macvlan相关参数 net.ipv4.conf.default.rp_filter 0 net.ipv4.conf.all.rp_filter 0 # 允许容器使用物理网络接口的所有特性 net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 EOF # 应用配置 sudo sysctl -p /etc/sysctl.d/99-docker.conf4. 验证内核参数sysctl net.ipv4.ip_forward sysctl net.bridge.bridge-nf-call-iptables预期输出net.ipv4.ip_forward 1 net.bridge.bridge-nf-call-iptables 1网卡确认(ens33)1. 查看网络接口ip -o link show | awk -F: {print $2}2. 查看网卡详情ip addr show ens33预期输出应包含inet 192.168.64.xxx/24物理机IP状态为UP3. 确认网卡MAC地址cat /sys/class/net/ens33/address4. 如果网卡名称不是ens33如果您的网卡名称不同如eth0需要修改所有配置文件中的网卡名称# 查看可用网卡 ls /sys/class/net/ # 如果是eth0将ens33替换为eth0 sed -i s/ens33/eth0/g /path/to/configs/*.confDocker Compose安装Docker Compose V2已随Docker一起安装。如果需要独立安装方式1通过包管理器安装# GitHub下载推荐 sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # 如果上述链接无效使用这个 sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # 添加执行权限 sudo chmod x /usr/local/bin/docker-compose # 创建软链接 sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose方式2通过pip安装pip3 install docker-compose验证安装docker compose version重要提示使用docker compose空格而非docker-compose连字符Docker Compose V5已移除version字段网络配置验证1. 测试物理网络连通性# 测试到网关 ping -c 3 192.168.64.1 # 测试节点间互通 ping -c 3 192.168.64.129 ping -c 3 192.168.64.1302. 测试DNS解析ping -c 3 baidu.com3. 开放防火墙端口如需要# CentOS/RHEL/OpenEuler sudo firewall-cmd --permanent --add-port80/tcp sudo firewall-cmd --permanent --add-port443/tcp sudo firewall-cmd --reload # Ubuntu/Debian sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload前置条件检查清单在继续部署之前请确认以下条件已满足所有节点已安装Docker 27.x所有节点已安装Docker Compose V2docker compose version命令正常执行网卡名称确认为ens33或已更新配置内核参数已配置macvlan模块已加载节点间网络互通防火墙已配置或已关闭下一步完成环境准备后请继续02-网络创建.md - 创建5个Macvlan网络03-目录创建.md - 创建部署目录结构