当前位置: 首页 > news >正文

【走进Docker的世界】Docker环境搭建

Docker 环境搭建

1. 系统兼容性检查

目标:验证操作系统版本、内核、硬件支持及存储空间,确保满足Docker运行要求,避免后续安装出现兼容性问题。

# 检查操作系统版本(CentOS/RHEL示例)
cat /etc/redhat-release
# 输出示例:CentOS Linux release 7.9.2009 (Core)# 检查内核版本(最低要求3.10+,推荐5.15+)
uname -r
# 示例输出:4.18.0-477.15.1.el8_8.x86_64# 验证CPU虚拟化支持(数值≥1表示支持)
egrep -c '(vmx|svm)' /proc/cpuinfo# 检查存储空间(/var/lib/docker为默认数据目录)
df -h /var/lib/

[!NOTE]

  • CentOS 7.4以下版本需先升级系统
  • CentOS 8需启用powertools仓库:dnf config-manager --set-enabled powertools
  • 最小化安装系统建议安装基础工具:yum install -y wget vim net-tools

2. 系统预配置

目标:调整安全策略和内核参数,为Docker提供必要的运行环境,解决权限和网络问题。

2.1 安全设置调整
# 禁用SELinux(防止容器权限问题)
getenforce  # 检查状态
setenforce 0  # 临时禁用
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  # 永久禁用# 生产环境防火墙配置
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --reload# 关闭swap(Kubernetes环境必需)
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab  # 注释swap配置
2.2 内核参数优化
# 加载必要内核模块
lsmod | grep br_netfilter || {modprobe br_netfilterecho "br_netfilter" >> /etc/modules-load.d/docker.conf
}# 配置网络参数
cat > /etc/sysctl.d/docker.conf <<'EOF'
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
EOFsysctl -p /etc/sysctl.d/docker.conf

3. Docker安装步骤

目标:清理旧版本并安装稳定版Docker,使用国内源提升安装速度。

3.1 清理旧版本
yum remove -y docker* containerd runc
3.2 配置软件源
# 使用阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all && yum makecache fast
3.3 安装指定版本
# 查看可用版本
yum list docker-ce --showduplicates | sort -r# 安装LTS版本
yum install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io# 验证安装
docker --version

4. 服务配置

目标:启动服务并配置镜像加速,调整权限简化操作。

4.1 启动Docker服务
systemctl start docker
systemctl enable docker
systemctl status docker
4.2 配置镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{"registry-mirrors": ["https://<你的阿里云加速地址>","https://mirror.baidubce.com"]
}
EOFsystemctl daemon-reload
systemctl restart docker
4.3 权限设置
usermod -aG docker $USER
newgrp docker
docker ps

5. 功能测试

目标:验证Docker核心功能是否正常工作。

# 基础功能测试
docker run --rm hello-world# 下载速度测试
time docker pull nginx# 应用容器测试
docker run -d -p 80:80 --name test-nginx nginx
curl localhost
docker stop test-nginx && docker rm test-nginx

6. 常见问题解决方案

6.1 服务启动失败
journalctl -u docker -f
6.2 存储驱动冲突
systemctl stop docker
rm -rf /var/lib/docker
cat > /etc/docker/daemon.json <<EOF
{"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]
}
EOF
systemctl start docker
6.3 容器网络故障排查(外网连接异常)
# 排查步骤:
# 1. 检查IP转发状态(需确保开启)
sysctl net.ipv4.ip_forward  # 正常输出应为1# 2. 检测DNS配置(需配置有效DNS服务器)
cat /etc/resolv.conf  # 应包含114.114.114.114等有效DNS地址# 3. 网络重置方案(终极解决措施)
pkill docker
iptables -t nat -F
ip link set docker0 down
brctl delbr docker0
systemctl restart docker# AWS EC2特殊配置(修复MTU导致的网络问题):
sudo service network restart
sudo ifconfig eth0 mtu 1500

建议按照顺序执行上述检查步骤,每完成一项立即验证网络状态,确保及时发现问题并解决。

http://www.dtcms.com/a/324399.html

相关文章:

  • 自动驾驶控制算法——Stanley 控制器
  • 构建健壮的商品数据采集服务:处理京东 API 限流与错误
  • python洛谷做题27:P5724 【深基4.习5】求极差 / 最大跨度值 / 最大值和最小值的差
  • mcp-go v0.37.0 版本发布:重大变更与新特性解析
  • 利用容器编排完成haproxy和nginx负载均衡架构实施
  • GitLab 零基础入门指南:从安装到项目管理全流程
  • Elasticsearch QueryDSL 教程
  • 应对高并发 - TCP/IP网络栈核心参数调优
  • 【递归、搜索与回溯算法】递归算法
  • 【代码随想录day 16】 力扣 513.找树左下角的值
  • 米哈游笔试——求强势顶点的个数
  • [python] typing 中的overload
  • Android视图回调机制:从post到ViewTreeObserver,从源码分析到最佳实践
  • MariaDB 数据库管理
  • 基于PyTorch一文讲清楚损失函数与激活函数并配上详细的图文讲解
  • Pytorch深度学习框架实战教程12:Pytorch混合精度推理,性能加速147%的技术实现
  • MPLS对LSP连通性的检测
  • 使用Blender可视化多传感器坐标系转换
  • 移动端常见的8大css兼容性问题和处理方法
  • #Linux内存管理# 浅析缺页中断中私有映射且发生写时复制COW的工作原理
  • 《Qt————Tcp通讯》
  • 容器网络隔离测试于VPS服务器环境的桥接模式验证
  • Docker 详细介绍及使用方法
  • 【大智慧数据】心智开花的时候
  • 数字图像处理3
  • 三、k8s 1.29 之 安装1网络 / ikuai路由器虚拟机安装
  • 【嵌入式】Linux的常用操作命令(2)
  • 防御保护10
  • AI优化SEO关键词实战应用
  • Java数据结构——LinkedList