Ubuntu24.04 生产环境 Docker(全国内源)
生产要点:卸载snap‑docker,使用阿里云docker‑ce apt源,多镜像加速,开启buildkit,live‑restore容器不随dockerd重启退出,禁止一键脚本get.docker.com。
0. 前置清理(必做,Ubuntu24默认可能带snap docker)
bash
# 删除snap版本docker(生产坚决不用snap版)
sudo snap remove docker
# 清理旧apt残留
sudo apt remove -y docker docker-engine docker.io containerd runc
1. 安装依赖 + 阿里云docker‑ce GPG密钥
bash
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
# 使用阿里云镜像的gpg
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
2. 添加【阿里云docker‑ce apt源】(下载docker包不走海外)
bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3. 安装生产版docker(含compose v2插件)
bash
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
4. 生产daemon.json配置(镜像加速+生产参数)
live‑restore:dockerd重启容器不停止;buildkit开启构建加速;多fallback镜像源,生产不要用不稳定公共代理源,优先高校公共源
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.ustc.edu.cn"
],
"live-restore": true,
"features": {
"buildkit": true
},
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
- log‑opts:限制容器日志单文件100M,最多3个轮转,防止磁盘打满(生产强烈建议)
- live‑restore:dockerd重启业务容器不退出
- buildkit:新版构建引擎
5. 启动&开机自启,重载配置
bash
sudo systemctl daemon-reload
sudo systemctl enable --now docker
sudo systemctl restart docker
6. 免sudo(生产服务器建议普通用户加入组,需要重新登录生效)
bash
sudo usermod -aG docker $USER
# 当前会话临时生效测试:newgrp docker
7. 验证全套生产环境
bash
docker --version
docker compose version
systemctl status docker
# 查看镜像加速是否生效
docker info | grep -A5 "Registry Mirrors"
# 测试拉取镜像
docker pull hello-world
生产环境补充最佳实践
- 系统apt源也建议切国内源(阿里云/清华),否则apt更新慢;
- 云服务器优先使用云厂商专属镜像加速器地址(阿里云控制台获取,带宽更高),替换registry‑mirrors首位;
- 不要开启
insecure‑registries跳过TLS,生产私有仓库必须https; - 定期清理磁盘:
docker system prune -a,注意不要在业务高峰执行; - 不要使用get.docker.com脚本,生产环境apt源可控,版本可锁定。
锁定docker版本(生产防止自动升级)
bash
sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-compose-plugin