CentOS Docker 安装指南
一、CentOS系统Docker基础安装
1.1 环境准备与依赖安装
在CentOS 7/8系统上安装Docker前,需完成以下前置工作:
# 卸载旧版本(如有)sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine# 安装依赖包sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.2 官方仓库配置(推荐生产环境使用)
# 添加Docker官方仓库sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 验证仓库有效性sudo yum repolist enabled | grep "docker.*ce"
1.3 快速安装方案
# 安装最新稳定版sudo yum install -y docker-ce docker-ce-cli containerd.io# 启动服务并设置开机自启sudo systemctl enable --now docker# 验证安装sudo docker run hello-world
二、国内镜像仓库加速配置
2.1 主流国内镜像源对比
| 镜像源 | 地址 | 特点 |
|---|---|---|
| 阿里云 | https://.mirror.aliyuncs.com | 需登录阿里云容器服务获取专属ID |
| 腾讯云 | https://mirror.ccs.tencentyun.com | 腾讯云用户专属 |
| 中科大 | https://docker.mirrors.ustc.edu.cn | 学术机构首选 |
| 网易 | https://hub-mirror.c.163.com | 无需注册 |
2.2 配置方法详解
# 创建或修改配置文件sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://<your_mirror_url>","https://<secondary_mirror>"],"max-concurrent-downloads": 10,"log-driver": "json-file","log-opts": {"max-size": "100m"}}EOF# 重启服务生效sudo systemctl daemon-reloadsudo systemctl restart docker
2.3 验证镜像加速效果
# 拉取镜像测试sudo docker pull centos:7# 查看下载来源sudo docker inspect --format='{{.RepoDigests}}' centos:7
三、Proxy代理配置方案
3.1 系统级代理配置
# 创建代理配置文件sudo mkdir -p /etc/systemd/system/docker.service.dsudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<-'EOF'[Service]Environment="HTTP_PROXY=http://proxy.example.com:8080"Environment="HTTPS_PROXY=http://proxy.example.com:8080"Environment="NO_PROXY=localhost,127.0.0.1,.example.com"EOF# 重新加载配置并重启sudo systemctl daemon-reloadsudo systemctl restart docker
3.2 Docker客户端代理配置
# 创建或修改~/.docker/config.jsonmkdir -p ~/.dockertee ~/.docker/config.json <<-'EOF'{"proxies": {"default": {"httpProxy": "http://proxy.example.com:8080","httpsProxy": "http://proxy.example.com:8080","noProxy": "localhost,127.0.0.1,.example.com"}}}EOF
3.3 容器内代理配置
# Dockerfile示例FROM centos:7ENV http_proxy=http://proxy.example.com:8080ENV https_proxy=http://proxy.example.com:8080ENV no_proxy=localhost,127.0.0.1,.example.comRUN echo "proxy=http://proxy.example.com:8080" >> /etc/yum.conf
四、docker-compose安装与配置
4.1 安装方法对比
| 方法 | 命令 | 适用场景 |
|---|---|---|
| 官方二进制包 | sudo curl -L “https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose | 生产环境推荐 |
| pip安装 | sudo pip install docker-compose | Python环境已配置场景 |
| 容器化部署 | sudo docker run —rm -v “$PWD”:/app -w /app docker/compose:latest up | 临时测试使用 |
4.2 推荐安装方案
# 下载最新稳定版sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 添加执行权限sudo chmod +x /usr/local/bin/docker-compose# 创建软链接(可选)sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose# 验证安装docker-compose --version
4.3 基础使用示例
# docker-compose.yml示例version: '3.8'services:web:image: nginx:latestports:- "80:80"volumes:- ./html:/usr/share/nginx/htmldeploy:resources:limits:cpus: '0.5'memory: 512Mdb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: exampleMYSQL_DATABASE: testdbvolumes:- db_data:/var/lib/mysqlvolumes:db_data:
五、高级配置与优化建议
5.1 存储驱动选择
# 查看可用存储驱动sudo docker info | grep "Storage Driver"# 修改存储驱动(需清空现有容器和镜像)sudo tee /etc/docker/daemon.json <<-'EOF'{"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]}EOF
5.2 日志管理配置
# 配置日志轮转sudo tee /etc/docker/daemon.json <<-'EOF'{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3","labels": "production_status","env": "os,customer"}}EOF
5.3 安全加固建议
- 定期更新Docker版本
- 限制容器资源使用(—cpus, —memory)
- 使用非root用户运行容器
- 定期清理无用镜像和容器
# 安全清理脚本示例sudo docker system prune -af --volumes
六、常见问题解决方案
6.1 镜像拉取失败处理
# 查看详细错误sudo docker pull centos:7 -v# 常见解决方案1. 检查镜像名称是否正确2. 验证代理配置是否生效3. 更换国内镜像源4. 检查网络防火墙设置
6.2 docker-compose版本兼容性
# 查看版本兼容性docker-compose --versiondocker --version# 版本对应关系表| Compose版本 | Docker引擎要求 ||-------------|----------------|| v2.x | 19.03+ || v1.29.x | 18.06+ |
6.3 性能优化参数
# 修改内核参数sudo tee /etc/sysctl.d/docker.conf <<-'EOF'net.ipv4.ip_forward=1net.bridge.bridge-nf-call-iptables=1vm.overcommit_memory=1EOF# 应用配置sudo sysctl -p /etc/sysctl.d/docker.conf
本指南完整覆盖了CentOS系统下Docker生态的部署全流程,从基础安装到高级配置均提供了经过验证的解决方案。建议读者根据实际环境选择适合的配置方案,并定期关注Docker官方安全更新。对于企业级部署,建议结合CI/CD流水线实现自动化配置管理。