CentOS Docker 安装指南
1.1 系统环境准备
在CentOS 7/8系统上安装Docker前,需确保系统满足以下条件:
- 64位x86架构
- 内核版本≥3.10(通过
uname -r验证) - 已安装依赖包:yum-utils、device-mapper-persistent-data、lvm2
推荐执行前置清理命令:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
1.2 官方仓库安装
通过yum-config-manager添加Docker官方仓库:
sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装特定版本(示例为20.10版本):
sudo yum install docker-ce-20.10.21 docker-ce-cli-20.10.21 containerd.io
1.3 阿里云镜像加速安装
对于国内用户,推荐使用阿里云镜像源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo yum install docker-ce docker-ce-cli containerd.io
安装完成后启动服务:
sudo systemctl enable dockersudo systemctl start docker
Docker国内镜像仓库配置
2.1 镜像加速器原理
国内镜像仓库通过缓存Docker Hub镜像,解决网络延迟问题。主流方案包括:
- 阿里云容器镜像服务(ACR)
- 腾讯云镜像仓库
- 华为云SWR
- 网易镜像站
2.2 阿里云镜像配置
- 登录阿里云控制台获取专属加速器地址
- 修改daemon.json配置文件:
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]}EOF
- 重启Docker服务:
sudo systemctl daemon-reloadsudo systemctl restart docker
2.3 腾讯云镜像配置
类似配置方式,使用腾讯云提供的加速地址:
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]}
Proxy代理配置方案
3.1 系统级代理设置
修改/etc/systemd/system/docker.service.d/http-proxy.conf:
[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"
应用配置:
sudo systemctl daemon-reloadsudo systemctl restart docker
3.2 容器级代理配置
创建自定义网络并设置DNS:
docker network create --driver bridge --subnet 172.18.0.0/16 --gateway 172.18.0.1 mynet
运行容器时指定代理:
docker run -e HTTP_PROXY=http://proxy:8080 \-e HTTPS_PROXY=http://proxy:8080 \--network mynet \alpine env
3.3 认证代理配置
对于需要认证的代理,创建认证文件:
echo "username:password" > ~/.docker-proxy-authchmod 600 ~/.docker-proxy-auth
修改docker服务配置:
[Service]Environment="HTTP_PROXY=http://username:password@proxy.example.com:8080"
docker-compose安装与使用
4.1 官方安装方式
推荐使用pip安装最新版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose version
4.2 国内源安装
使用清华源加速下载:
sudo curl -L "https://mirrors.tuna.tsinghua.edu.cn/docker-compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
4.3 基础使用示例
创建docker-compose.yml文件:
version: '3.8'services:web:image: nginx:latestports:- "80:80"volumes:- ./html:/usr/share/nginx/htmldb:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: example
常用命令:
docker-compose up -d # 后台启动docker-compose logs -f # 查看日志docker-compose down # 停止并删除
4.4 高级配置技巧
使用.env文件管理环境变量:
# .env文件内容MYSQL_ROOT_PASSWORD=secretDB_NAME=myapp
在compose文件中引用:
environment:MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
最佳实践与故障排除
5.1 性能优化建议
- 配置存储驱动为overlay2(CentOS 7默认)
- 调整日志驱动为json-file并设置max-size
- 限制单个容器资源使用(—cpus, —memory)
5.2 常见问题解决
问题1:镜像拉取失败
- 检查/etc/docker/daemon.json配置
- 验证代理设置是否正确
- 使用
docker info查看镜像加速器状态
问题2:docker-compose版本过低
- 完全卸载旧版本后重新安装
- 检查PATH环境变量顺序
问题3:容器网络不通
- 检查防火墙设置(
sudo firewall-cmd --list-all) - 验证自定义网络配置
- 使用
docker network inspect诊断
5.3 安全建议
- 定期更新Docker和组件
- 使用非root用户运行docker命令
- 限制容器权限(—cap-drop, —read-only)
- 定期清理无用镜像和容器
总结
本文系统阐述了CentOS环境下Docker生态的完整配置流程,从基础安装到高级运维技巧。通过合理配置国内镜像仓库和代理,可显著提升国内用户的Docker使用体验。docker-compose的引入则进一步简化了多容器应用的管理。建议开发者根据实际需求选择合适的配置方案,并定期维护系统以确保最佳性能和安全性。
实际部署时,建议先在测试环境验证所有配置,再应用到生产环境。对于企业用户,可考虑结合CI/CD流水线实现Docker环境的自动化部署和管理。随着容器技术的不断发展,持续关注Docker官方更新和国内云服务商的优化方案,将有助于保持技术栈的先进性。