Docker 环境安装
Docker 相关的环境部署及配置说明,以 CentOS 7.x 为例。
内核版本要求
Docker 要求 Linux 内核版本 3.8 及以上,可通过以下命令确认当前内核版本:
uname -r卸载旧版本
CentOS 系统默认源中可能存在名为 docker 的旧版软件包(新版名称为 docker-engine),安装前建议先清理干净。
# 移除旧版 Docker 相关包
yum remove docker \
docker-common \
docker-selinux \
docker-engineTIP
卸载旧版本不会删除 /var/lib/docker 目录,原有的镜像、容器、数据卷等数据均会保留。
设置 Yum 源
Docker 分为两个版本:
- Docker CE(Community Edition):社区版,免费
- Docker EE(Enterprise Edition):企业版,收费
以下使用 Yum 方式安装 Docker CE。
第一步:安装 yum-utils 工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2第二步:添加 Docker 的 Yum 源(使用阿里云镜像)
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo第三步(可选):启用 / 禁用测试仓库
# 启用 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-edgeTIP
生产环境建议只使用 stable 仓库,不启用测试仓库。
安装 Docker
第一步:更新 Yum 包索引
sudo yum makecache fast第二步:安装最新版本的 Docker CE
sudo yum install -y docker-ce第三步(可选):安装指定版本的 Docker
先列出所有可用版本:
yum list docker-ce --showduplicates | sort -r再安装指定版本(以 17.09.0.ce 为例):
sudo yum -y install docker-ce-17.09.0.ce第四步:启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker第五步:验证安装
# 运行测试镜像,看到 "Hello from Docker!" 说明安装成功
sudo docker run hello-world
# 查看 Docker 版本信息
docker version配置镜像加速
由于国内访问 Docker Hub 不稳定,强烈建议安装完成后立即配置镜像加速,否则拉取镜像时会频繁失败。
可用的国内镜像源
更多镜像源汇总参考:
编辑(或创建)/etc/docker/daemon.json:
sudo vi /etc/docker/daemon.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 使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker验证镜像加速是否生效:
docker info | grep -A 5 "Registry Mirrors"单独拉取镜像
如果某个镜像无法通过镜像加速拉取,可借助 DaoCloud 公共镜像代理 单独拉取:
# 格式:docker pull m.daocloud.io/<原始镜像地址>
docker pull m.daocloud.io/docker.io/library/node:18-alpine替换 Yum 源为阿里云(如遇安装失败)
若安装过程中遇到网络问题,可手动将 Yum 源替换为阿里云镜像:
# 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 个历史日志文件 |
例如:
{
"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 参数覆盖全局配置。