Docker 安装与配置

好,咱们直接进入 Docker 落地最基础的一步——安装。我见过不少团队,镜像构建环境出问题,最后追根溯源,发现是 Docker 安装时埋的坑。所以这一章,咱们把安装和初始配置彻底理清。

说白了,Docker 就是一个客户端-服务端架构。你敲命令,dockerd 干活。装好只是第一步,配置好了,后面批量质控才稳定。

不同操作系统的安装方式

Linux 上装 Docker,建议走官方仓库,别用系统自带的旧版本。

快速安装 Ubuntu/Debian 系:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

这套脚本会自动添加仓库、装好 docker-ce。我之前搭 CI 环境时,被内置的旧版 Docker 坑过(Compose 版本对不上),所以现在一律用官方脚本。

CentOS/RHEL 8+,官方也有仓库。但你得先装 yum-utils,再配 repo:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

macOS 和 Windows,现在都用 Docker Desktop。这东西自带图形界面,还能管理资源限制。不过要注意,Docker Desktop 在 Windows 上需要 WSL 2 后端。我曾经帮同事排查过“容器启动不了”的问题,最后发现他没装 WSL 2。

操作系统推荐方式注意事项
Ubuntu / Debian官方脚本 或 apt 仓库系统自带版本可能太老
CentOS / RHEL 8+yum-config-manager需启用 docker-ce 仓库
macOSDocker Desktop可调整 CPU / 内存限制
WindowsDocker Desktop + WSL2必须安装 WSL 2 内核
小建议:如果你在服务器上跑 Daemon,千万别用 Docker Desktop。纯 dockerd 更轻量,资源开销也小一半。

配置守护进程 dockerd

装完 Docker,第一件事是看系统服务状态。我个人习惯这样检查:

sudo systemctl status docker
sudo journalctl -u docker -n 50

如果服务没起来,八成是配置文件写错了。Docker 守护进程的主配置文件在 /etc/docker/daemon.json。我建议你一开始就把它用好,别等出问题了再改。

举个例子,批量构建时经常遇到 存储驱动 和 日志大小 的问题。默认日志文件可能撑爆磁盘——我踩过这个坑。用以下配置可以限制:

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}

overlay2 是目前最推荐的存储驱动,性能好、稳定。cgroupdriver 用 systemd 能避免和 kubelet 打架(如果你将来要搭 Kubernetes 的话)。

改完配置,别忘了重载守护进程:

sudo systemctl daemon-reload
sudo systemctl restart docker
注意:配置文件里不能有注释,JSON 格式必须标准。我曾经见过有人拷贝示例进来,里面带了个不存在的字段,结果 dockerd 直接拒绝启动。用 dockerd --validate 先检查一遍。

用户组设置

默认情况下,运行 Docker 命令需要 root 权限。你每次敲 sudo docker ... 不烦吗?解决办法是把当前用户加入 docker 组:

sudo usermod -aG docker $USER
newgrp docker   # 或者退出 shell 重新登录

之后你就能直接用 docker images、docker ps 了,不用再写 sudo。

安全提醒:加入 docker 组相当于给了用户 root 权限。因为 docker 命令可以挂载宿主机目录、运行特权容器。在团队共用机器上,慎重分配这个组。

我负责过一套多人使用的构建集群,当时就是让每个开发都在自己的用户下装 Docker,结果组权限乱得一塌糊涂。后来统一用 docker 组,权限控制在同一个用户组里,好管理多了。

Docker 安装与配置知识体系 操作系统安装 Linux / macOS / Windows 守护进程配置 daemon.json / systemd 用户组设置 docker 组 / 权限管理 systemctl status 服务状态检查 daemon.json 配置 存储驱动 / 日志限制 usermod -aG 免 sudo 执行 初始化三步走:安装 → 配置 → 提权 每步做扎实,后续质控流程才能顺畅

嗯,到这里 Docker 安装和配置的核心环节就捋清楚了。你想想看,那些莫名其妙“Permission denied”或者“容器跑不起来”的问题,多半是配置不对或者组权限没设好。接下来,咱们会基于这个基地去构建镜像质控环境——但现在,先确保你的 Docker 跑得稳。快检查一下:

docker info
docker run hello-world

两条命令走通,这章的任务就算完了。