Docker简介
简而言之,Docker 是一个可供开发者通过容器(container)来构建,运行和共享应用(application)的平台。用容器来部署应用被称为集装箱化(containerization)。
- Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。
- Docker中文社区、Docker中文文档
Docker 包括三个基本概念:
- 镜像(Image)
- Docker的镜像概念类似于虚拟机里的镜像(比如
.ISO
文件),是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。 - 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序。
- 这里的镜像就如下方虚拟机创建时候使用的镜像类似。这个镜像便于移动,并且这个镜像我们可以交给任何人使用,其他人使用的时候也很方便,只需要将其实例化即可。
- Docker的镜像概念类似于虚拟机里的镜像(比如
- 容器(Container)
- Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停止,删除等。
- 每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
- 容器就类似与虚拟机中我们创建好的虚拟机系统,之后我们所有的操作都是在容器中进行的,我们的程序也是运行在容器中。
- 仓库(Repository)
- 镜像便于传播,而仓库就是专门用来传播这些镜像的地方,他有点类似与Github,或者你可以把他看成一个存放各种镜像的镜像商店
- Docker官方的仓库: 他的服务器处于国外,所以下载速度较慢,不过我们可以通过换源解决。
- daocloud国内仓库: 国内也有一些优秀的商店,他和Docker官方的仓库的区别类似与Github和Gitee的区别。
- 网易云镜像中心
本博客主要解决在Windows环境下,快速上手使用Docker的问题,主要会介绍在Windows系统下Docker Desktop的安装,Docker 基础命令,比如说下载镜像、实例化镜像、使用容器、关闭容器、删除容器、使用仓库、创建镜像等模块的使用。其他系统应该除了安装外其他操作都可以通用。
Docker安装(Winodws)
开启 Hyper-V
程序与功能中,启用或关闭 Windows 功能


下载 Docker Desktop

打开安装包加载一会后一般会弹出两个选项,在较旧的Windows10或之前的系统会出现如下所示的相关提示。我们把第一个选上,第二个根据需求选择即可。

而较新的Windows则会出现一个使用wsl2的提示(最少是1903以上,推荐为2004或更高版本),如果使用wsl2则docker的性能会发挥更好。如下图,这里推荐使用WSL2,如果之后安装完成后发生报错可能是WSL2版本比较老,需要更新导致的

换源,使用阿里云
注册一个阿里云阿里云账号。进入管理控制台界面。
进入控制台

进入产品与服务

进入镜像加速器中,获取加速器地址

打开安装好的docker的主界面:在设置界面找到Docker Engin,将复制好的加速器地址填入即可

1 | { |
github上有个项目:docker_mirror,可以自动检测在你的网络环境下哪个源是最快的
启动Docker
windows下启动docker打开桌面的docker图标启动即可。 启动成功后,在Win + R 输入cmd进入windows命令行界面, 输入docker -v,查看docker版本:

首先我们输入docker run hello-world
是否会出现下图所示的提示,如果出现报错,环境配置可能出现了问题。
我在配置时候出现了Docker
无法拉取镜像并提示网络超时的问题,这里以我为例子解决一下

命令docker images显示说明images镜像中没有helloworld这个文件

这时我们只需要创建一个daemon.json文件,然后进入这个文件中添加如下内容:
1 | { |
然后保存退出,并重启docker
另一个错误

未运行Docker Desktop,要运行了之后再跑Docker的命令才行!
安装完成Docker后,默认每次开机的时候都会自动启动,但我们也可以手动启动,关闭或者重启Docker
1 | # 启动docker |
汉化 Docker Desktop
下载对应版本的中文语言包
访问 GitHub,下载适用于 Docker Desktop 的中文语言包,链接地址为:DockerDesktop-CN
选择对应你的版本

导航至 Docker 的安装目录,路径默认为:
1 | C:\Program Files\Docker\Docker\frontend\resources |
在该目录下找到 app.asar
文件,建议先备份原文件,然后将复制的中文语言包中的 app.asar
文件粘贴并替换原有文件。

完成替换后,请关闭 Docker Desktop,然后重新启动该程序。此时,Docker Desktop 应该以中文界面显示。

WSL2安装
WSL(Windows Subsystem for Linux)是微软开发的一项技术,允许用户在Windows系统中直接运行完整的Linux环境,无需虚拟机。通过操作系统级虚拟化,WSL将Linux子系统无缝嵌入Windows,提供原生Linux命令行工具、软件包管理器及应用程序支持。它具有轻量化、文件系统集成、良好的交互性及开发效率提升等优点,消除了Windows与Linux之间的隔阂,尤其适合开发者和需在Windows平台上使用Linux工具的用户。
启用 WSL 功能
- 打开开始菜单,在开始菜单中点击应用与程序
- 在应用与程序选项里面,鼠标滚到最底下,点击程序与功能
- 点击选项启用或关闭 Windows 功能
- 在弹出的窗口中勾选 虚拟机平台(Virtual Machine Platform) 和 适用于 Linux 的 Windows 子系统。

dos命令自动安装
对于 windows10 版本2004(内部版本19041或更高)及更新版本或者 windows11,可以直接用 dos命令安装
管理员打开 cmd 或者 powershell,依次
1 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |

启用虚拟机功能
1 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
将 WSL 2 设置为默认版本
1 | wsl --set-default-version 2 |
更新 wsl 内核
1 | wsl --update |
列出发行版本并且选择一个安装
1 | wsl --list --online |
1 | wsl --install -d Ubuntu-24.04 |

之后使用 wsl.exe -d Ubuntu-24.04
启动

下次想要使用 wsl 的话,在 cmd 或者 powershell 内输入 wsl 命令即可:

Windows 下的所有文件都被挂载在了 /mnt
下,在Windows
终端中的任意目录下输入 wsl,即可进入 Linux 对应的路径。
错误修复:
无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限

WSL报告”请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化”
在 启用或关闭windows 功能中,查看是否勾选虚拟机平台
将注册表HKEY_LOCAL_MACHINE
和HKEY_LOCAL_MACHINE
两个键值中ProviderOrder
的值从
cbfs6,P9NP,RDPNP,LanmanWorkstation,webclient
改为
P9NP,RDPNP,LanmanWorkstation,webclient
在资源管理器中的
「地址栏」输入:\\wsl.localhost
或者
\\wsl.localhost\
也有概率直接就好了
导出到D盘
注意接下来的操作需要使用 管理员权限的 cmd或pw
首先,查看可用的 WSL 发行版
1 | wsl --list --online |
查看你的版本
1 | wsl -l -v |
关闭ubuntu
1 | wsl --shutdown Ubuntu-24.04 |
导出Ubuntu到指定位置
1 | wsl --export Ubuntu-24.04 D:\OtherLanguageSetting\WSL\Ubuntu-24.04\Ubuntu-24.04.tar |
取消注册原有的 Ubuntu,注销
1 | wsl --unregister Ubuntu-24.04 |
导入虚拟机到指定位置
1 | wsl --import Ubuntu-24.04 D:\OtherLanguageSetting\WSL\Ubuntu-24.04 D:\OtherLanguageSetting\WSL\Ubuntu-24.04\Ubuntu-24.04.tar --version 2 |
现在在目录下,WSL2 发行版的文件存储在一个 虚拟磁盘映像文件(ext4.vhdx) 中,该文件用于存储整个 Ubuntu-20.04 文件系统,如下图所示:

导入完成后,你可以启动 WSL
1 | wsl -d Ubuntu-24.04 |
添加新用户并设置其管理员权限,需要 root 权限
切换到 root 用户
在 WSL 的 Ubuntu 系统中,使用 su
命令切换到 root
用户:
1 | su - |
执行该命令后,系统会提示你输入 root 用户的密码。如果你之前没有设置过 root 密码,可以使用以下命令设置:
1 | sudo passwd root |
按照提示输入当前用户的密码,然后设置新的 root 密码。
添加新用户
1 | sudo adduser --allow-bad-names yourname |
赋予新用户管理员权限
在 Ubuntu 系统中,管理员权限通常通过将用户添加到 sudo
组来实现。使用以下命令将 ErgouTree
用户添加到
sudo
组:
1 | sudo usermod -aG sudo ErgouTree |
验证
1 | # 切换到新用户 |
Ubuntu下安装 Docker
以我的 VMware 虚拟机上安装的 Ubuntu 20.5 为例子
修改复制粘贴的快捷键
首先,我十分建议大家去做一件事,那就是修改复制粘贴的快捷键
如果你弄好了 VMware Tools 的工具内容,那么你是可以进行跨平台粘贴的,但是由于 Ubuntu 的默认复制粘贴是 shift+ctrl+c/v,相当不适应
首先
ctrl+alt+t
打开终端,点击终端的菜单栏的”编辑”,“首选项”

之后进行修改就行了
准备工作
安装前先卸载操作系统默认安装的docker
1 | sudo apt-get remove docker docker-engine docker.io containerd runc |
安装必要支持
1 | sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-releaseg |

使用 curl
获取 Docker GPG 密钥并通过 gpg
进行处理
官方的
1 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg |
官方的连不上,那就用阿里云的
1 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
更新源
1 | sudo apt update |
添加 Docker 的软件源列表
1 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
更新 apt 缓存
1 | sudo apt update |
开始安装
安装命令
1 | sudo apt install docker-ce docker-ce-cli containerd.io |

查看 docker 版本
1 | sudo docker version |

查看Docker运行状态
1 | sudo systemctl status docker |

安装 Docker 命令补全工具
1 | sudo apt-get install bash-completion |
允许非Root用户执行 docker 命令
当我们安装好了Docker之后,有两种方式来执行docker 命令
- 在docker命令前加上sudo, 比如:sudo docker ps
- sudo -i 切换至root用户,再执行docker 命令
是不是可以让当前用户在不切root,或者不加sudo 的情况下正常使用 docker
命令呢?答案是有的。可通过将该用户添加到 docker
用户组来实现。
创建或检查 docker 用户组
通常在安装 Docker 时,系统会自动创建 docker
用户组。不过,你还是可以通过以下命令来确认该用户组是否存在:
1 | cat /etc/group | grep docker |

看样子是没有,此时可以使用以下命令创建:
1 | sudo groupadd docker |
使用 usermod
命令把需要使用 Docker 的用户添加到
docker
用户组中。我的用户名是
ergoutree
,记得换成你的
1 | sudo usermod -aG docker ergoutree |
参数说明:
-a
:表示append
,也就是将用户追加到指定的用户组,而不会覆盖该用户原本所属的其他用户组。-G
:用于指定目标用户组。
刷新用户组权限
1 | newgrp docker |
注销当前用户,然后重新登录也可以
验证配置
执行以下命令,检查非 Root 用户是否能够正常运行 Docker 命令:
1 | docker run hello-world |
确认用户是否已经正确添加到 docker 用户组
1 | groups ergoutree # 检查输出中是否包含 docker |
重启 Docker 服务
1 | sudo systemctl restart docker |
确保 docker
用户组对其有读写权限
1 | ls -l /var/run/docker.sock # 应显示类似 srw-rw---- 1 root docker ... 的结果 |
更新.bashrc文件
我们需要编辑 ~/.bashrc文件,并在文件末尾增加如下一行,如果不在.bashrc文件中增加下面这一行命令
1 | 如果没有此行命令,你会发现,当你每次打开新的终端 |
使用 nano 打开
1 | nano ~/.bashrc |
文件管理器打开
1 | source ~/.bashrc |

很明显,直接连连不上,因为 Docker 被墙了,所以我们需要配置镜像
换上阿里的源
我们需要在docker daemon 配置文件中增加国的可用的 docker hub mirror
从阿里云获取的专属镜像加速地址

- 登录阿里云官网,进入 容器镜像服务 页面。
- 在左侧导航栏中,点击 “镜像工具” - “镜像加速器”,就能看到专属的镜像加速地址。
找到你的daemon.json 文件,通常在 /etc/docker/daemon.json 这个位置
在daemon.json 中增加
1 | "registry-mirrors": [ |
通常来讲如果没有其它的配置,那么daemon.json完整的文件内容就是
1 | { |
重载 Docker 配置并重启 Docker 服务
1 | sudo systemctl daemon-reload |
拉取一个镜像来验证是否成功切换到阿里云镜像源
1 | docker pull hello-world |
1 | docker run hello-world |
如果发现阿里云的镜像拉不下来,试试这个
1 | sudo mkdir -p /etc/docker |
查看 docker 系统信息 docker info,如果从输出结果中看到了 registry mirror 刚配置的内容地址,说明配置成功。
AtomHub 可信镜像中心也可以
可信镜像中心官网:https://atomhub.openatom.cn/
通过搜索需要的镜像名称,进行pull拉取,用法示例:
1 | docker pull atomhub.openatom.cn/amd64/redis:7.0.13 |
现在我是拉取成功了,至此 Ubuntu 上安装docker是成功了
