前言
Docker 作为现代运维和开发的基础工具,在不同 Linux 发行版及 Mac 上的安装方式各有差异。本文整理了一键安装脚本与手动安装步骤,覆盖生产环境常用的 CentOS 7.9、Ubuntu 22.04、AWS Amazon Linux 2023 以及开发环境 Mac,并包含镜像加速、目录迁移、远程 API 等生产必备配置。
一、CentOS 7.9 安装
1.1 一键安装(推荐)
阿里云环境亲测可用:
curl -sSL https://gitee.com/mrchis/docker-install/releases/download/docker-install-linux7.9/docker-intall-linux-7.9.sh | sh
1.2 手动安装步骤
卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
安装依赖并配置阿里云镜像源
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 修正版本号适配 CentOS 7
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
sed -i 's/0/1/g' /etc/yum.repos.d/docker-ce.repo
安装 Docker
# 最新版
yum install -y docker-ce docker-ce-cli containerd.io
# 或指定版本(如 20.10.7)
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
启动并设置开机自启
systemctl start docker
systemctl enable docker --now
systemctl status docker
1.3 配置镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<"EOF"
{
"registry-mirrors": [
"https://wh9z3wm8.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
https://wh9z3wm8.mirror.aliyuncs.com为阿里云容器镜像服务的镜像加速器地址,需登录阿里云控制台获取专属地址。
1.4 开启远程 API(可选)
vim /usr/lib/systemd/system/docker.service
# 修改 ExecStart 行
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload
systemctl restart docker
二、Ubuntu 22.04 安装
2.1 华为云环境
# 安装依赖
apt -y install apt-transport-https ca-certificates curl software-properties-common
# 添加 GPG 密钥(国内用阿里云,国外用官方)
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
# 添加仓库
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 安装
apt update
apt install docker-ce -y
2.2 AWS Ubuntu 22.04
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce -y
sudo systemctl enable docker
sudo systemctl start docker
2.3 配置 systemd 驱动(Kubernetes 环境必需)
cat > /etc/docker/daemon.json <<"EOF"
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "200m"
},
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl enable docker.service --now
自 Kubernetes v1.22 起,kubelet 默认 cgroup driver 为 systemd,Docker 需与其保持一致。
三、AWS Amazon Linux 2023 安装
3.1 官方仓库安装
# Amazon Linux 2023 官方直接支持
sudo dnf install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version
3.2 指定版本安装(Docker CE 25.0.5)
# 使用阿里云或官方仓库
sudo dnf install -y docker-ce-3:25.0.5-1.el9 docker-ce-cli-1:25.0.5-1.el9 containerd.io
3.3 修改 Docker 数据目录
生产环境建议将 Docker 数据目录迁移至独立数据盘:
# 创建新目录
mkdir -vp /data/docker/workspace
mkdir -vp /etc/docker/
# 单机容器配置
cat > /etc/docker/daemon.json <<"EOF"
{
"data-root": "/data/docker/workspace",
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF
# Kubernetes 环境配置(必须 systemd)
cat > /etc/docker/daemon.json <<"EOF"
{
"data-root": "/data/docker/workspace",
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# 迁移现有数据
rsync -aP /var/lib/docker/ /data/docker/workspace
systemctl daemon-reload
systemctl restart docker
# 验证
docker info | grep "Docker Root Dir"
3.4 内核参数配置(Kubernetes 必需)
Amazon Linux 2023 需调整内核参数以兼容 Docker 和 Kubernetes:
# 查看当前内核
grubby --default-kernel
# /boot/vmlinuz-6.1.147-172.266.amzn2023.x86_64
# 添加内核参数
sudo grubby --update-kernel=/boot/vmlinuz-6.1.147-172.266.amzn2023.x86_64 --args="cgroup_enable=memory swapaccount=1 systemd.unified_cgroup_hierarchy=0"
# 验证
grubby --info=/boot/vmlinuz-6.1.147-172.266.amzn2023.x86_64 | grep args
# 重启
sudo reboot
# 验证生效
cat /proc/cmdline
docker info | egrep "Cgroup Driver|Cgroup Version"
3.5 安装 Docker Compose
# 最新版
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 或指定版本 v2.29.7
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
四、Mac 安装
# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Docker Desktop
brew install --cask --appdir=/Applications docker
五、Docker 与 Docker Compose 升级
5.1 Docker 升级
# 停止服务
systemctl stop docker
# 卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker
# 重新安装(见上文各系统安装步骤)
5.2 Docker Compose 升级
# 下载新版本,版本号可在 https://github.com/docker/compose/releases 查看
curl -L https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
六、常见问题
6.1 daemon.json 配置冲突
错误:unable to configure the Docker daemon with file /etc/docker/daemon.json
解决:编辑 /usr/lib/systemd/system/docker.service,删除 $INSECURE_REGISTRY 相关行(约倒数 15 行)。
6.2 Ubuntu 修改数据目录(snapd 环境)
AWS Ubuntu 若使用 snapd 管理 Docker,需先停止:
sudo systemctl stop snapd.socket
sudo systemctl stop snapd.service
sudo systemctl stop docker.socket
# 然后按 2.3 节配置 daemon.json 并迁移数据
6.3 查看 Docker 网络与容器
# 查看网络列表
docker network ls
# 查看 bridge 网络下的容器名称
docker network inspect 8b8e127068cd | jq '.[0].Containers | to_entries[] | .value.Name'
总结
| 环境 | 包管理器 | 关键配置 |
|---|---|---|
| CentOS 7.9 | yum | 阿里云镜像源、systemd 驱动 |
| Ubuntu 22.04 | apt | 官方/阿里云源、systemd 驱动 |
| AWS AL2023 | dnf | 内核参数、数据目录迁移 |
| Mac | brew | Docker Desktop |
生产环境部署建议:
- 数据目录迁移:将
/var/lib/docker迁移至独立数据盘 - 日志限制:配置
log-opts.max-size防止日志占满磁盘 - 镜像加速:国内环境必配,提升镜像拉取速度
- cgroup 驱动:Kubernetes 环境统一使用
systemd
本文首发于 云间札记,转载请注明出处。