Skip to content

Docker 环境安装

Docker 相关的环境部署及配置说明,以 CentOS 7.x 为例。

内核版本要求

Docker 要求 Linux 内核版本 3.8 及以上,可通过以下命令确认当前内核版本:

bash
uname -r

卸载旧版本

CentOS 系统默认源中可能存在名为 docker 的旧版软件包(新版名称为 docker-engine),安装前建议先清理干净。

bash
# 移除旧版 Docker 相关包
yum remove docker \
           docker-common \
           docker-selinux \
           docker-engine

TIP

卸载旧版本不会删除 /var/lib/docker 目录,原有的镜像、容器、数据卷等数据均会保留。


设置 Yum 源

Docker 分为两个版本:

  • Docker CE(Community Edition):社区版,免费
  • Docker EE(Enterprise Edition):企业版,收费

以下使用 Yum 方式安装 Docker CE。

第一步:安装 yum-utils 工具

bash
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

第二步:添加 Docker 的 Yum 源(使用阿里云镜像)

bash
sudo yum-config-manager \
  --add-repo \
  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第三步(可选):启用 / 禁用测试仓库

bash
# 启用 edge 测试仓库
sudo yum-config-manager --enable docker-ce-edge

# 启用 test 测试仓库
sudo yum-config-manager --enable docker-ce-test

# 禁用 edge 测试仓库
sudo yum-config-manager --disable docker-ce-edge

TIP

生产环境建议只使用 stable 仓库,不启用测试仓库。


安装 Docker

第一步:更新 Yum 包索引

bash
sudo yum makecache fast

第二步:安装最新版本的 Docker CE

bash
sudo yum install -y docker-ce

第三步(可选):安装指定版本的 Docker

先列出所有可用版本:

bash
yum list docker-ce --showduplicates | sort -r

再安装指定版本(以 17.09.0.ce 为例):

bash
sudo yum -y install docker-ce-17.09.0.ce

第四步:启动 Docker 并设置开机自启

bash
sudo systemctl start docker
sudo systemctl enable docker

第五步:验证安装

bash
# 运行测试镜像,看到 "Hello from Docker!" 说明安装成功
sudo docker run hello-world

# 查看 Docker 版本信息
docker version

配置镜像加速

由于国内访问 Docker Hub 不稳定,强烈建议安装完成后立即配置镜像加速,否则拉取镜像时会频繁失败。

编辑(或创建)/etc/docker/daemon.json

bash
sudo vi /etc/docker/daemon.json

写入以下配置:

json
{
  "registry-mirrors": [
    "https://docker-0.unsee.tech",
    "https://docker-cf.registry.cyou",
    "https://docker.1panel.live",
    "https://docker.xuanyuan.me"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

保存后重启 Docker 使配置生效:

bash
sudo systemctl daemon-reload
sudo systemctl restart docker

验证镜像加速是否生效:

bash
docker info | grep -A 5 "Registry Mirrors"

单独拉取镜像

如果某个镜像无法通过镜像加速拉取,可借助 DaoCloud 公共镜像代理 单独拉取:

bash
# 格式:docker pull m.daocloud.io/<原始镜像地址>
docker pull m.daocloud.io/docker.io/library/node:18-alpine

替换 Yum 源为阿里云(如遇安装失败)

若安装过程中遇到网络问题,可手动将 Yum 源替换为阿里云镜像:

bash
# 1. 备份原有配置
sudo cp /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.bak

# 2. 写入阿里云镜像配置
sudo tee /etc/yum.repos.d/docker-ce.repo > /dev/null <<'EOF'
[docker-ce]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

# 3. 清理缓存并重新安装
sudo yum clean all
sudo yum makecache
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

日志管理配置

Docker 容器默认日志没有大小限制,长时间运行可能撑满磁盘。建议在 /etc/docker/daemon.json 中统一配置日志轮询策略(该配置已包含在上方的镜像加速配置中):

配置项说明
log-driver: json-file日志驱动类型,json-file 为默认驱动
max-size: 10m单个日志文件最大 10MB,超出后自动轮替
max-file: 3最多保留 3 个历史日志文件

例如:

json
{
   "log-driver": "json-file", 	 # 设置日志驱动为 json-file
   "log-opts": {			    
      "max-size": "10m",		# 限制单个日志文件的最大大小为 10MB
      "max-file": "3"		    # 保留最多 3 个日志文件
   },
   "registry-mirrors": [
        "https://docker-0.unsee.tech"
   ]
}

TIP

如需为单个容器单独设置日志策略,可在 docker run 时通过 --log-opt 参数覆盖全局配置。