4. Docker 安装与配置
要跑 Kraken2 分析流程,第一步肯定是装 Docker。你可能会想:“装个软件有什么好讲的?” 嗯,其实坑不少。我在不同系统上装过几十次,有些细节不处理好,后面反复出问题。
Docker 在 Linux、Windows 和 macOS 下的安装方式差别很大。我个人的习惯是:能用 Linux 就用 Linux,尤其是服务器端。Windows 和 macOS 更多是用于开发调试。
4.1 Linux 下的安装
Linux 的安装最直接,但不同发行版有细微区别。我以 Ubuntu/Debian 和 CentOS/RHEL 为例。
Ubuntu / Debian
先卸载旧版(如果有的话),然后更新 apt 索引,再安装依赖包。
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
添加 Docker 官方 GPG 密钥和仓库:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
然后安装 Docker 引擎:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
download.docker.com 换成 mirrors.tuna.tsinghua.edu.cn/docker-ce 就行。
CentOS / RHEL
CentOS 7 或 8 用 yum 安装。先安装必要的工具包:
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 docker-compose-plugin
启动并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
docker.sock 的情况,需要先停用 podman 或修改 socket 路径。
4.2 Windows 下的安装
Windows 有两种主流方式:WSL2 + Docker Desktop,或者直接用 Docker Desktop(Hyper-V 后端)。我强烈推荐前者,资源占用小,启动快。
先启用 WSL2
以管理员身份打开 PowerShell,执行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启后,安装 Linux 内核更新包(从微软官网下载),然后设置 WSL2 为默认版本:
wsl --set-default-version 2
从 Microsoft Store 安装 Ubuntu 发行版(比如 22.04 LTS)。
安装 Docker Desktop
去 Docker 官网下载 Docker Desktop for Windows 安装包。安装时勾选「Use WSL 2 instead of Hyper-V」。安装完成后,在设置里启用 WSL 2 后端,并指定你的 Ubuntu 发行版。
4.3 macOS 下的安装
macOS 主要用 Docker Desktop for Mac,或者轻量级方案 Colima。我个人习惯用 Docker Desktop,因为它有图形界面,管理容器方便。但如果你在意资源占用,Colima 是个好选择。
Docker Desktop (Apple Silicon / Intel)
从 Docker Hub 下载对应架构的 .dmg 安装包。拖入 Applications 文件夹,打开后会自动在菜单栏显示图标。首次启动会要求授权并安装一些内核扩展。
Colima
Colima 是一个基于 Lima 的轻量级容器运行时。安装简单:
brew install colima
colima start --cpu 4 --memory 8
启动后它会自动配置 Docker 上下文,直接使用 docker 命令即可。
4.4 用户权限设置(关键!)
装完 Docker 后,如果不配置权限,每次执行 docker 命令都要加 sudo。这在实际工作中非常麻烦,尤其是你要在脚本里调用 docker 命令时。
解决方法:将当前用户加入 docker 组。
sudo usermod -aG docker $USER
newgrp docker
然后退出终端重新登录,或者执行 newgrp docker 激活组权限。
docker-users 组,只把需要运行流程的用户加进去。
验证权限:
docker --version
docker run hello-world
看到 "Hello from Docker!" 就代表安装与权限配置成功。
4.5 常用配置项(适用于所有平台)
装完只是第一步,还有几个配置能让体验更好:
- 镜像加速器(国内用户必配):在 Docker Desktop 或
/etc/docker/daemon.json中添加 registry-mirrors。 - 存储驱动:Linux 推荐
overlay2,性能最好。 - 资源限制:在 Docker Desktop 里可以限制 CPU、内存,避免占满宿主机。
- 日志大小限制:设置
max-size=10m防止日志撑爆磁盘。
一个典型的 /etc/docker/daemon.json 内容:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
修改后重启 Docker 服务:
sudo systemctl restart docker
4.6 知识结构总览
下面这张 SVG 图总结了本章的核心流程:从下载 Docker 到最终能跑起来 hello-world。
4.7 常见问题与避坑
- “权限被拒绝”:多半是没加 docker 组,或者加入后没重新登录。我曾经在服务器上急得满头大汗,最后发现只是没执行
newgrp docker。 - “Docker Desktop 启动后一直转圈”:Windows 上常见,先检查 WSL2 是否启用,再检查 Hyper-V 是否冲突。我试过卸载旧版 Docker 重装就好了。
- “Apple Silicon 拉取 x86 镜像”:记得加
--platform linux/amd64,否则默认拉 arm64 镜像。 - “Cannot connect to the Docker daemon”:Linux 下检查
systemctl status docker是否运行;macOS 或 Windows 检查 Docker Desktop 是否启动。
roles/docker_install 统一管理。