Docker 教程 2 — Docker 安装与配置(Ubuntu/Debian)
概念讲解
上一篇我们搞清楚了 Docker 是什么、容器和虚拟机的区别。今天进入实操第一步——把 Docker 装起来。
Docker 分为两个版本:
• Docker Engine (CE):社区免费版,命令行工具,适合服务器和开发环境,本文安装的就是这个。 • Docker Desktop:带图形界面的桌面版,适合 macOS / Windows / Linux 桌面用户,下一篇会单独讲。
⚠️ Ubuntu 自带的 docker.io 包通常版本较旧,强烈建议用 Docker 官方源安装,才能获得最新功能和安全补丁。
安装完成后还会介绍一些基础配置:镜像加速、非 root 用户权限、开机自启等。这些配置做好了,后面的学习会顺畅很多。
代码示例
1. 卸载旧版本(如有)
sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null2. 安装依赖
sudo apt updatesudo apt install -y ca-certificates curl gnupg3. 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg4. 添加 Docker 官方源
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null💡 如果你用的是 Debian,把上面 URL 中的
ubuntu换成debian即可。
5. 安装 Docker Engine
sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin
docker-compose-plugin是新版 Compose V2,以docker compose(无连字符)的方式调用,取代了旧的独立docker-compose命令。
6. 验证安装
docker --version# Docker version 27.x.x, build xxxxxxxdocker compose version# Docker Compose version v2.x.xsudo docker run hello-world# 看到 "Hello from Docker!" 就说明安装成功7. 非 root 用户免 sudo 运行
默认只有 root 和 docker 组成员才能运行 Docker 命令。把你的用户加入 docker 组:
sudo usermod -aG docker $USER重新登录(或重启)后生效。验证:
docker run hello-world # 不需要 sudo 了8. 配置镜像加速(国内用户)
国内拉取 Docker Hub 镜像经常超时,配置镜像加速器可以大幅改善:
sudo tee /etc/docker/daemon.json <<'EOF'{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://registry.docker-cn.com" ]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker9. 设置开机自启
Docker 服务默认已开机自启,但容器本身不会。如果希望某个容器随系统启动:
docker run -d --restart=always --name my-app nginx常用 --restart 策略:
no | |
on-failure | |
always | |
unless-stopped |
实战场景
场景一:新服务器初始化
拿到一台全新的 Ubuntu 云服务器,第一件事就是跑上面 1-6 步装好 Docker,然后配好镜像加速。整个过程 5 分钟搞定。
场景二:团队统一环境
写一个一键安装脚本,新人入职直接跑脚本,避免「我机器上能跑你那不行」的经典问题:
#!/bin/bash# install-docker.shset -eecho ">>> 安装 Docker..."# ... 上面的步骤 1-6 ...echo ">>> 配置镜像加速..."# ... 步骤 8 ...echo ">>> 完成!请重新登录以使用免 sudo 的 docker 命令"常见坑点
1. 用了 Ubuntu 自带的 docker.io包:版本可能很旧(差好几个大版本),缺少 buildx 等新特性。一定要用 Docker 官方源。2. usermod -aG docker后没重新登录:组变更只在新登录会话生效,su - $USER或重新 SSH 连接即可,不用重启机器。3. 国内 pull 镜像超时:不配镜像加速的话,拉个 nginx镜像可能等半天。步骤 8 的加速配置一定要做。4. --restart=always的坑:手动docker stop的容器会在机器重启后又跑起来,如果你不想这样,用unless-stopped更合理。5. Debian 用户直接复制 Ubuntu 的命令:APT 源 URL 里的 ubuntu要改成debian,否则会报404 Not Found。
关注我,获取更多实用工具和技术分享。
夜雨聆风