当前位置: 首页 > 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.xdnf.cn/news/1277389.html

相关文章:

  • 震动马达实现库函数版(STC8)
  • 机器学习——多元线性回归
  • C++移动语义、完美转发及编译器优化零拷贝
  • [创业之路-541]:经营分析会 - 企业的经营分析会,研发负责人负责提供哪些信息?
  • 【RocketMQ 生产者和消费者】- ConsumeMessageOrderlyService 顺序消费消息
  • 不同于传统的简并模分离圆极化天线,基于耦合谐振器的圆极化天线的原理是什么?
  • 如何通过API接口实现批量获取淘宝商品数据?(官方与非官方渠道分享)
  • 代码随想录算法训练营第六十天|图论part10
  • Java 基础编程案例:从输入交互到逻辑处理
  • ATF(TF-A)安全通告 TFV-12(CVE-2024-5660)
  • JDBC的连接过程(超详细)
  • 机器学习——标准化、归一化
  • 从零开始理解百度语音识别API的Python实现
  • nginx 反向代理传递原始域名
  • 前端开发中的常见问题与实战解决方案​
  • PostgreSQL 批量COPY导入优化参数配置
  • GC如何判断对象可以被回收?
  • SpringAI报错:com.github.victools.jsonschema.generator.AnnotationHelper
  • 《设计模式》UML类图
  • Java集合框架、Collection体系的单列集合
  • Elasticsearch QueryDSL 教程
  • Android APK 使用OpenGl 绘制三角形源码
  • Spring Boot 全局异常处理与日志监控实战
  • 智能体革命:网络安全人的角色重塑与突围指南
  • 井字游戏的强化学习
  • 复现论文《基于Retinex理论和深度学习的低照度图像增强算法研究》
  • CompletableFuture实现Excel 多个sheet页批量导出
  • 【模板】拓扑排序
  • 【嵌入式硬件实例】-555定时器PWM调光电路
  • 通过Certbot自动申请更新HTTPS网站的SSL证书