一、CentOS Docker基础安装与环境准备
1.1 系统兼容性验证
Docker官方推荐使用CentOS 7/8或RHEL 7/8系统,需确认内核版本≥3.10。通过uname -r命令可查看当前内核版本,建议使用最新稳定版内核以获得最佳兼容性。
1.2 依赖环境安装
# 安装基础依赖包sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 配置阿里云镜像加速(可选)sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 Docker CE安装流程
# 安装Docker CEsudo yum install -y docker-ce docker-ce-cli containerd.io# 启动服务并设置开机自启sudo systemctl enable --now docker# 验证安装sudo docker run hello-world
1.4 国内镜像源配置
编辑/etc/docker/daemon.json文件(不存在则创建):
{"registry-mirrors": ["https://registry.docker-cn.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com"],"insecure-registries": []}
重启服务生效:
sudo systemctl restart docker
二、Docker代理配置方案
2.1 系统级代理设置
2.1.1 环境变量配置
# 临时设置export HTTP_PROXY=http://proxy.example.com:8080export HTTPS_PROXY=http://proxy.example.com:8080# 永久生效(写入~/.bashrc)echo 'export HTTP_PROXY=http://proxy.example.com:8080' >> ~/.bashrcecho 'export HTTPS_PROXY=http://proxy.example.com:8080' >> ~/.bashrcsource ~/.bashrc
2.1.2 systemd服务配置
创建/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"
执行以下命令重新加载配置:
sudo systemctl daemon-reloadsudo systemctl restart docker
2.2 Docker客户端代理配置
2.2.1 配置文件方式
在~/.docker/config.json中添加:
{"proxies": {"default": {"httpProxy": "http://proxy.example.com:8080","httpsProxy": "http://proxy.example.com:8080","noProxy": "localhost,127.0.0.1"}}}
2.2.3 构建时代理传递
Dockerfile中通过ARG传递代理:
ARG HTTP_PROXYARG HTTPS_PROXYENV HTTP_PROXY=${HTTP_PROXY}ENV HTTPS_PROXY=${HTTPS_PROXY}RUN apt-get update && apt-get install -y curl
三、docker-compose安装与配置
3.1 安装方式对比
| 方法 | 命令 | 适用场景 |
|---|---|---|
| 官方二进制包 | sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
最新版本控制 |
| pip安装 | sudo pip install docker-compose |
Python环境已配置场景 |
| 容器化部署 | docker run -v /var/run/docker.sock:/var/run/docker.sock docker/compose |
临时测试环境 |
3.2 推荐安装流程
# 下载最新稳定版sudo curl -L "https://github.com/docker/compose/releases/latest/download/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
3.3 代理配置集成
在docker-compose.yml中配置构建参数:
version: '3.8'services:app:build:context: .args:HTTP_PROXY: http://proxy.example.com:8080HTTPS_PROXY: http://proxy.example.com:8080
或通过环境变量注入:
services:app:environment:- HTTP_PROXY=http://proxy.example.com:8080- HTTPS_PROXY=http://proxy.example.com:8080
四、高级配置与优化
4.1 存储驱动配置
# /etc/docker/daemon.json 添加{"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]}
4.2 日志驱动配置
{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}}
4.3 资源限制配置
# docker-compose示例services:web:deploy:resources:limits:cpus: '0.50'memory: 512Mreservations:memory: 256M
五、常见问题解决方案
5.1 镜像拉取失败处理
- 检查镜像名称拼写
- 验证镜像源可用性:
curl -I https://registry.hub.docker.com/v2/
- 清除本地缓存:
docker system prune -a
5.2 代理配置不生效排查
- 检查环境变量是否设置正确
- 验证代理服务器可达性:
curl -x http://proxy.example.com:8080 http://www.baidu.com
- 检查Docker服务日志:
journalctl -u docker --no-pager -n 50
5.3 docker-compose版本兼容性
使用docker-compose config验证文件格式,确保与安装版本兼容。对于v3+格式,需要Docker 1.13.0+版本支持。
六、最佳实践建议
- 镜像管理:建立私有仓库时,推荐使用Harbor或Nexus Repository Manager
- 安全配置:
- 定期轮换镜像仓库凭证
- 使用
--no-cache参数避免缓存攻击 - 限制容器权限(
--cap-drop=ALL)
- 性能优化:
- 合理设置
--ulimit参数 - 使用
cgroup进行资源隔离 - 考虑使用
cgroups v2(CentOS 8+)
- 合理设置
本指南完整覆盖了CentOS环境下Docker生态的核心配置,从基础安装到高级优化均提供了可落地的解决方案。实际部署时建议先在测试环境验证配置,再逐步推广到生产环境。对于企业级部署,建议结合Ansible或Puppet等配置管理工具实现自动化部署。