最近给几台新服务器配环境,发现很多人还在用最原始的 yum install docker。说实话,这种装法在自己电脑上玩玩行,真到了生产环境(哪怕是公司的测试机),权限问题、日志撑爆磁盘、镜像拉不动,分分钟让你怀疑人生。

今天把 Linux 下安装 Docker 的标准姿势复盘一下,不整虚的,直接上干货。


1. 别让旧版本死灰复燃

很多 Linux 系统自带了老掉牙的 Docker 1.x。装新版前,第一件事就是把它们彻底干掉,免得一会儿服务冲突。

Ubuntu/Debian 跑这个:

code Bash

downloadcontent_copy

expand_less

sudo apt-get remove docker docker-engine docker.io containerd runc

CentOS/RHEL 跑这个:

code Bash

downloadcontent_copy

expand_less

sudo yum remove docker docker-common docker-selinux docker-engine
2. 别用官网源,那是给自己找不痛快

官网的 repo 地址在国外,执行 update 的时候慢得像蜗牛。直接换成阿里或者清华的源。

CentOS 推荐方案:

code Bash

downloadcontent_copy

expand_less

# 装个工具包
sudo yum install -y yum-utils
# 换源,别犹豫
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 真正干活的安装命令

现在我们要装的是 docker-ce(社区版),顺便把 Compose 插件也带上,现在没人还去单独装那个老掉牙的 Python 版 Compose 了。

code Bash

downloadcontent_copy

expand_less

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
4. 关键:装完之后的“保命”配置

这部分最重要,很多教程不写。

默认装完,Docker 只有 root 能跑。如果你不想每次敲命令都加 sudo,或者不想某天发现服务器因为 Docker 日志满了而宕机,赶紧改 /etc/docker/daemon.json。

执行: sudo vi /etc/docker/daemon.json
直接贴入这段配置:

code JSON

downloadcontent_copy

expand_less

{
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  },
  "exec-opts": ["native.cgroupdriver=systemd"]
}
  • 镜像加速: 目前国内镜像站动不动就挂,多配几个兜底。
  • 日志限制: 这是“血泪教训”。默认 Docker 日志是无限大的,不限制的话,你的 SSD 迟早被这些 json.log 塞满。
  • Cgroup: 保证 Docker 和系统内核的管理逻辑一致,别让它在压力大的时候乱跳。

别忘了刷新配置:

code Bash

downloadcontent_copy

expand_less

sudo systemctl daemon-reload
sudo systemctl enable docker --now
5. 权限问题一劳永逸

把你的当前用户加进 docker 组,退出重新登录,从此告别 sudo:

code Bash

downloadcontent_copy

expand_less

sudo usermod -aG docker $USER

6. 进阶:环境跑起来了,接下来干啥?

装好 Docker 只是拿到了入场券。在实际开发里,你还得面对这几个现实问题:

  • 镜像拉不动怎么办? (现在的网络环境,你懂的)
  • 常用的 MySQL、Redis 怎么一键编排?
  • Dockerfile 怎么写才能让镜像只有几十 M 而不是几百 M?

为了少搜点零散的博客,我把这些年攒下来的 Docker 常用命令速查表(PDF版)全套离线镜像包(Nginx/MySQL等) 还有 10个直接能跑的实战项目源码 全整理在一起了。

如果你是刚开始折腾 Docker,或者正在准备面试,建议直接看我这篇总结:

👉 https://blog.csdn.net/xifangge2025/article/details/160361036?spm=1011.2415.3001.5331

里面有我整理的 1GB 常用服务镜像离线包,专门针对内网环境或者是家里网速不给力的情况,建议先保存到网盘吃灰,用的时候你就知道有多香了。


碎碎念

技术这东西,环境配好了就成功了一半。如果在装 containerd.io 报错,或者遇到 GPG check failed,大概率是系统的内核版本太旧或者依赖冲突。

有报错的在评论区把堆栈贴出来,我看到会回。别自己瞎折磨。


#Docker #Linux #后端开发 #运维实战 #环境配置

更多推荐