前言

Docker是目前最流行的容器化技术,能够帮助开发者快速构建、部署和运行应用程序。本文将详细介绍在CentOS 7系统上安装和配置Docker的完整流程。


环境准备

1. 系统更新

# 更新系统到最新版本
yum -y update

2. 防火墙配置

# 停止防火墙服务
systemctl stop firewalld

# 禁用防火墙开机自启
systemctl disable firewalld --now

3. SELinux配置

# 临时关闭SELinux
setenforce 0

# 永久禁用SELinux
sed -i -r 's/SELINUX=[ep].*/SELINUX=disabled/g' /etc/selinux/config

4. 系统参数优化

# 添加系统参数配置
cat >> /etc/sysctl.conf << EOF
vm.max_map_count = 262144
EOF

# 使配置生效
sudo sysctl -p

Docker安装步骤

1. 安装必要依赖包

# 安装基础工具
yum -y install vim
yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils

2. 配置Docker镜像源

# 添加阿里云Docker镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新yum缓存
yum makecache fast

3. 安装Docker引擎

# 安装Docker及相关组件
yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Docker服务管理

1. 启动Docker服务

# 启动Docker服务
systemctl start docker

# 查看Docker服务状态
systemctl status docker

# 设置Docker开机自启
systemctl enable docker

# 查看Docker进程
ps -ef | grep docker

2. 验证安装

# 检查Docker版本
docker --version

# 运行测试容器
docker run hello-world

系统优化配置

1. 时间同步配置

# 安装时间同步工具
yum -y install ntpdate

# 立即同步时间
ntpdate ntp1.aliyun.com

# 添加定时同步任务(每天凌晨1点自动同步)
echo "0 1 * * * ntpdate ntp1.aliyun.com" >> /var/spool/cron/root

# 查看定时任务
crontab -l

2. 禁用Swap分区(Kubernetes环境必需)

# 临时禁用swap
swapoff --all

# 永久禁用swap(注释掉swap相关行)
sed -i -r '/swap/ s/^/#/' /etc/fstab

Docker卸载指南

完全卸载Docker

# 卸载Docker及相关组件
yum remove -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 删除Docker数据目录(谨慎操作,会删除所有容器和镜像)
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

常见问题排查

1. 安装失败处理

  • 检查网络连接是否正常
  • 确认yum源配置是否正确
  • 查看系统版本兼容性

2. 服务启动异常

# 查看详细错误日志
journalctl -u docker.service

# 重新加载服务配置
systemctl daemon-reload

3. 权限问题解决

# 将当前用户加入docker组
usermod -aG docker $USER

# 重新登录生效
newgrp docker

总结

通过以上步骤,您已经成功在CentOS 7系统上完成了Docker的安装和基础配置。建议在生产环境中根据实际需求进一步配置Docker的安全设置和存储驱动等高级功能。

注意事项:

  • 生产环境请谨慎操作防火墙和SELinux设置
  • 定期更新Docker版本以获得安全补丁
  • 备份重要数据后再进行卸载操作

希望本指南对您的Docker之旅有所帮助!

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐