Docker 安装与踩坑全记录

2026年6月27日 docker 7 分钟阅读 1 次阅读
📖 文章摘要

路漫漫其修远兮,吾将上下而求索

环境

  • 本地电脑: Windows 10 Pro(版本 19045)
  • 学习服务器: 腾讯云 Ubuntu 22.04

一、Windows Docker Desktop 安装(踩坑篇)

下载安装

https://docs.docker.com/desktop/setup/install/windows-install/ 下载 Docker Desktop for Windows,安装包很大,下载完成后双击安装。

装完后验证版本:

docker --version
# Docker version 29.5.3, build d1c06ef

踩坑 1:WSL 报错

双击打开 Docker Desktop 后弹窗报错:

There was a problem with WSL
An error occurred while running a WSL command.

Docker Desktop 默认使用 WSL2(Windows Subsystem for Linux)作为后端来跑 Linux 容器。WSL 没配置好就会报这个错。

踩坑 2:wsl --install 卡住不动

微软的 WSL 下载源在国内很慢,不开代理几乎下不动。解决方案:

# 开 Clash 代理后执行
$env:HTTPS_PROXY="http://127.0.0.1:7897"
wsl --install -d Ubuntu

踩坑 3:WSL 安装报错 0x80070005

错误代码 0x80070005 表示没有管理员权限。PowerShell 必须以管理员身份运行才能安装 WSL。

踩坑 4:WSL 内核更新

# 可能需要手动更新 WSL2 内核
wsl --update --web-download
wsl --set-default-version 2

踩坑 5:Docker Engine 一直 Starting

即使 WSL 装好了,Docker Desktop 也可能卡在 "Starting the Docker Engine" 界面,超过 5 分钟都没反应。

此时检查 WSL 状态:

wsl -l -v
#  NAME      STATE           VERSION
#  Ubuntu    Stopped         2

需要手动启动 WSL:

wsl -d Ubuntu

最终结论

在 Windows 上装 Docker Desktop 非常折腾,尤其是:

  • WSL 依赖 Windows 版本和系统组件(Win10 19045 支持不好)
  • 国内网络下载微软源慢
  • 各种底层组件需要逐个排查

真正的 Docker 使用场景 99% 在 Linux 服务器上,Windows 只是开发环境。如果条件允许,直接在 Linux 上装 Docker 学习效率高得多。


二、Linux 服务器安装 Docker(成功篇)

环境

  • Ubuntu 22.04 LTS(腾讯云服务器)
  • 腾讯云内网镜像源(速度极快)

步骤

1. 添加 Docker APT 源

# 添加 GPG 密钥
curl -fsSL https://mirrors.tencentyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加 Docker 软件源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tencentyun.com/docker-ce/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新源
sudo apt update

2. 安装 Docker

sudo apt install docker-ce docker-ce-cli containerd.io -y

3. 验证安装

docker --version
# Docker version 29.6.1, build 8900f1d

4. 免 sudo 运行 Docker(可选)

sudo usermod -aG docker $USER && newgrp docker

5. 配置镜像加速(国内服务器必备)

sudo mkdir -p /etc/docker
echo '{"registry-mirrors":["https://mirror.ccs.tencentyun.com","https://docker.xuanyuan.me"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

6. 最终测试

docker run hello-world

看到 Hello from Docker! 即表示安装成功。


三、Docker 核心概念速览

镜像(Image) vs 容器(Container)

概念 类比 说明
镜像(Image) 安装包 / ISO 文件 只读模板,包含应用和依赖环境
容器(Container) 运行中的程序 镜像的实例,可读可写,可启动停止

打个比方:

  • 镜像是类(Class) — 定义了应用长什么样
  • 容器是对象(Object) — 真正跑在内存里的实例

常用命令

# 查看本地镜像
docker images

# 查看运行中的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

# 拉取镜像
docker pull nginx

# 运行容器
docker run nginx

# 停止容器
docker stop 容器ID

# 删除容器
docker rm 容器ID

# 删除镜像
docker rmi 镜像名

镜像加速原理

Docker Hub 在国外(registry-1.docker.io),国内服务器直接拉取会超时。配置 registry-mirrors 后,Docker 会先从国内镜像站拉取,镜像站缓存了常用镜像,速度极快。


四、经验总结

  1. Windows Docker Desktop 坑多 — 依赖 WSL2,WSL 又依赖 Windows 版本、网络环境,一环出问题就整个不好使。不适合初学者。
  2. Linux 装 Docker 是正道 — 一行 apt install 的事,这才是真实场景。
  3. 国内服务器必须配镜像加速registry-mirrors 配置腾讯云或阿里云加速,否则拉镜像必超时。
最后更新:2026年7月2日CC BY-NC-SA 4.0

评论

暂无评论,来写第一条吧

© 2026 My Blog. Built with Nuxt.js + FastAPI.