核心概念

  1. Docker引擎:容器运行时的核心组件,管理容器生命周期
  2. 镜像仓库(Registry):存储Docker镜像的服务器(默认Docker Hub)
  3. 存储目录:存放容器和镜像数据的路径(默认/var/lib/docker)
  4. 两种安装方式

    • 二进制安装:手动下载部署,适合离线环境
    • yum安装:官方推荐,自动管理依赖

我个人使用的docker 19.03版本二进制文件安装(不用迷信最新版,核心功能和基础功能基本不变)

通过网盘分享的文件:docker.tar.gz
链接: https://pan.baidu.com/s/1hSz53aPtSTqtK4ALPxIOLQ?pwd=whsb 提取码: whsb

安装流程

方式1:yum安装(推荐)

# 1. 卸载旧版本
sudo yum remove docker*

# 2. 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 3. 添加阿里云Docker源(替换默认源)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 5. 配置镜像加速器(国内源)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "insecure-registries": ["harbor.domain.io"],  # 私有仓库可配置在此处如:192.168.xxx.xxx:5000,可以拉取私有仓库镜像免于鉴权
  "registry-mirrors": ["https://your-mirror.mirror.aliyuncs.com"], 
  "data-root": "/data/docker"   # 自定义存储目录
}
EOF

# 6. 启动服务
sudo systemctl enable --now docker

方式2:二进制安装(离线环境)

# 1. 下载二进制包(官网替换版本号)
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz

# 2. 解压安装
sudo tar -zxvf docker-*.tgz -C /usr/local/bin --strip-components=1

# 3. 创建配置文件
sudo mkdir /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "insecure-registries": ["harbor.domain.io"],  # 私有仓库可配置在此处如:192.168.xxx.xxx:5000,可以拉取私有仓库镜像免于鉴权
  "registry-mirrors": ["https://registry.example.com"],  
  "data-root": "/mnt/docker-data"  # 自定义存储目录
}
EOF

# 4. 创建systemd服务
sudo tee /etc/systemd/system/docker.service <<-'EOF'
[Unit]
Description=Docker Application Container Engine
After=network.target

[Service]
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# 5. 启动服务
sudo systemctl enable --now docker

详细说明

1. 为何自定义镜像源?

  • 加速下载:国内访问Docker Hub速度慢,使用阿里云/腾讯云镜像加速
  • 私有仓库:企业环境使用自建Registry(如Harbor)保障安全
  • 配置位置/etc/docker/daemon.json 中的 registry-mirrors 字段

2. 自定义存储目录的必要性

  • 默认路径问题/var/lib/docker 易导致系统盘空间不足
  • 修改方法

    {
      "data-root": "/path/to/new/directory"
    }
  • 迁移数据(可选):

    systemctl stop docker
    cp -a /var/lib/docker/* /new/path/
    systemctl start docker

3. yum vs 二进制安装对比

特性yum安装二进制安装
依赖管理自动解决依赖需手动安装依赖
更新维护支持yum更新需重新下载替换
网络要求需要互联网访问离线可用
适用场景生产环境推荐无外网/特殊版本需求

4. 私有仓库配置

  1. 自建仓库:部署Harbor或Registry
  2. 客户端配置

    {
      "insecure-registries": ["myregistry.example.com:5000"]
    }
  3. 登录认证

    docker login myregistry.example.com:5000 -u <用户名> -p <密码>

5. 安装后验证

# 检查版本
docker --version

# 测试运行
docker run hello-world

# 查看配置生效情况
docker info | grep -E 'Registry|Docker Root'

注意事项

  1. 存储目录权限:确保自定义目录有写入权限(chmod 755 /data/docker
  2. SELinux问题:如遇权限错误可临时 setenforce 0 或配置SELinux策略
  3. 防火墙配置:开放2375(管理端口)和5000(私有仓库)端口
  4. 版本兼容性:二进制安装需注意内核版本(要求3.10+)

生产环境建议

  • 使用yum安装保障稳定性
  • 存储目录单独挂载数据盘
  • 配置私有仓库提高安全性
  • 定期清理镜像(docker system prune

总结

在CentOS安装Docker时,yum方式适合大多数场景,二进制安装满足特殊需求。关键配置包括:

  1. 通过daemon.json配置镜像加速源
  2. 修改data-root转移存储目录
  3. 企业环境配置私有仓库地址
    完成安装后运行docker info验证配置,即可开始安全的容器化之旅!

添加新评论