开始之前:您需要了解什么?
在着手获取Docker之前,我们首先需要明确一些基础概念,这将帮助您理解所下载内容的具体作用,并确保您选择正确的版本和路径。
1.1 下载的是什么?
当您提到“下载Docker”时,通常是指以下两种主要产品之一,具体取决于您的使用场景和操作系统:
- Docker Desktop (适用于Windows和macOS):
这是一个易于安装的应用程序,它包含了运行、构建和管理容器所需的所有组件。它提供了一个直观的图形用户界面(GUI),以及一个集成了Docker Engine、Docker CLI(命令行接口)、Docker Compose和Kubernetes(可选)的完整开发环境。对于桌面用户和开发者而言,这是最常用且推荐的选择。
- Windows版Docker Desktop通常依赖于WSL 2 (Windows Subsystem for Linux 2) 或 Hyper-V 虚拟机技术来运行Linux容器。WSL 2是当前官方推荐且性能更好的后端。
- macOS版Docker Desktop则利用macOS的Hypervisor框架来创建和管理轻量级虚拟机,以运行Docker Engine。
- Docker Engine (适用于Linux服务器):
这指的是Docker的核心运行时组件,它是一个轻量级的、开源的容器化平台。Docker Engine通常安装在Linux服务器上,通过命令行进行操作。它不包含桌面GUI,专注于提供容器的生命周期管理(构建、运行、停止、删除)。如果您是在云服务器、虚拟机或物理服务器上部署应用程序,Docker Engine是您的首选。
Docker Engine的安装通常还会伴随以下组件:
- Docker CLI:与Docker守护进程(daemon)交互的命令行工具。
- Containerd:一个符合CNCF(云原生计算基金会)OCI(开放容器倡议)运行时规范的高级容器运行时。Docker Engine使用它来管理容器的生命周期。
- RunC:一个低级的容器运行时,负责实际创建和运行容器。
1.2 为什么您需要下载Docker?
下载并使用Docker,主要是为了解决软件开发、测试和部署中的诸多痛点,并带来显著的效率提升和一致性保证:
- 环境一致性(“在我机器上能跑”):
Docker将应用程序及其所有依赖项(库、配置、环境)打包到一个独立的容器中。这意味着无论容器在哪里运行(开发者的笔记本、测试服务器、生产环境),它都能以相同的方式运行。这彻底解决了“在我机器上能跑,但在你机器上就不行”的经典问题。
- 简化开发与部署流程:
开发者可以快速地在本地搭建复杂的多服务开发环境(如数据库、消息队列、Web服务器等),而无需在本地系统上安装和配置这些服务。部署时,只需将容器镜像推送到注册中心,然后在目标机器上拉取并运行即可,大大简化了部署的复杂性。
- 资源隔离与效率:
每个Docker容器都运行在一个隔离的环境中,不会相互干扰。与传统虚拟机相比,容器共享宿主机的操作系统内核,因此更加轻量、启动更快,并且占用更少的系统资源。
- 快速迭代与测试:
容器的快速启动和销毁特性使得开发和测试周期得以加速。开发者可以快速创建、测试和废弃环境,而不会污染或影响宿主系统。
1.3 我是否需要为下载Docker付费?
对于大多数个人用户、小型团队、教育机构以及开源项目,下载和使用Docker是免费的。然而,Docker公司对其产品采取了分层许可模式:
- Docker Desktop:
对于个人使用、教育机构、非营利组织以及员工人数少于250人或年收入低于1000万美元的小型企业,Docker Desktop可以免费使用。对于规模更大或有特定商业需求的企业,Docker提供了付费的商业订阅计划(如Team、Business和Enterprise),这些计划通常包含高级功能、专业支持和合规性保障。在下载页面,您会看到相关的许可条款。
- Docker Engine:
Docker Engine本身是开源的,并遵循Apache 2.0许可协议,因此在Linux服务器上下载和使用Docker Engine是完全免费的。
在下载之前,请务必查看Docker官方网站上最新的许可协议,以确保您的使用情况符合其免费或付费条款。
在哪里可以安全、官方地下载Docker?
为了确保您下载到的是正版、安全且最新的Docker软件,强烈建议您始终通过官方或官方推荐的渠道获取。
2.1 官方下载渠道
- Docker官方网站:
这是获取Docker Desktop(适用于Windows和macOS)以及查看最新Docker Engine安装指南的首选和最权威的来源。
- Docker Desktop下载页面:通常位于
docker.com/products/docker-desktop。在这里,您可以直接找到适用于您的操作系统的安装包(.exefor Windows,.dmgfor macOS)。 - Docker Engine安装指南页面:位于
docs.docker.com/engine/install/。此页面提供了详细的安装教程,适用于各种Linux发行版(如Ubuntu, Debian, CentOS, Fedora等),这些指南会指导您如何通过系统自带的包管理器来安装Docker Engine,这是Linux上最推荐的安装方式。
- Docker Desktop下载页面:通常位于
- Linux系统包管理器:
对于Linux用户,Docker官方为主要发行版提供了预编译的包,您可以通过各自的包管理器(如
apt,yum,dnf,pacman)来安装Docker Engine。这是Linux上安装Docker Engine最常见、最稳定且最推荐的方法,因为它能确保依赖关系正确解决,并且易于更新和管理。
2.2 避免非官方渠道
请务必避免从非官方或不明来源的网站下载Docker安装包。这些来源可能包含篡改过的、不安全或过时的软件,给您的系统带来安全风险。
如何下载与安装Docker?分平台详细教程
本节将为您详细介绍如何在不同的操作系统上下载和安装Docker。
3.1 Windows操作系统
3.1.1 前置条件
- 操作系统版本:Windows 10 64-bit: Home 或 Pro 21H2 (build 19044) 或更高版本,或者 Windows 11。
- WSL 2 Backend (推荐):确保您的Windows系统已启用并安装了WSL 2。这是Docker Desktop在Windows上的默认和推荐后端,性能更好。如果没有安装,Docker Desktop安装程序通常会引导您完成安装,或者您可以手动按照微软的WSL安装指南进行操作。
- Hyper-V Backend (旧版或备选):如果您的Windows版本不支持WSL 2或您不想使用WSL 2,Docker Desktop也可以使用Hyper-V。您需要在BIOS/UEFI中启用虚拟化(Intel VT-x 或 AMD-V),并在Windows功能中启用Hyper-V。
- 内存与磁盘空间:至少4GB RAM,推荐8GB以上;至少20GB的空闲磁盘空间。
3.1.2 下载与安装步骤
- 下载安装包:
访问Docker官方网站的Docker Desktop下载页面:https://www.docker.com/products/docker-desktop。
点击“Download for Windows”按钮,下载
Docker Desktop Installer.exe文件。 - 运行安装程序:
找到下载好的
Docker Desktop Installer.exe文件,双击运行。 - 按照安装向导提示操作:
安装向导会提示您选择是否启用WSL 2后端(强烈推荐勾选)。保持默认设置通常是最好的选择。
点击“OK”或“Next”继续安装。安装程序会自动完成所有必要组件的安装。
- 等待安装完成:
安装过程可能需要几分钟。完成后,点击“Close”退出安装程序。
- 首次启动Docker Desktop:
安装完成后,Docker Desktop会自动启动或您可以在开始菜单中找到并启动它。
首次启动时,它可能需要一些时间来初始化和下载必要的组件(如WSL 2发行版或Hyper-V虚拟机)。
您可能需要同意Docker的服务条款。如果是商业用途,请确保您了解并遵守相关的许可政策。
3.1.3 配置WSL 2(推荐)
如果Docker Desktop提示WSL 2未正确配置,或者您想确保最佳性能,请按照以下步骤检查或配置WSL 2:
- 确保WSL已安装并更新:
打开PowerShell或命令提示符(以管理员身份运行),输入以下命令:
wsl --install如果WSL已安装,此命令会提示您更新WSL内核:
wsl --update - 将WSL 2设置为默认版本:
输入以下命令:
wsl --set-default-version 2 - 启用WSL 2集成:
打开Docker Desktop设置(系统托盘图标右键 -> Settings),导航到“Resources” -> “WSL Integration”,确保您的Linux发行版(例如Ubuntu)已启用。
3.2 macOS操作系统
3.2.1 前置条件
- 操作系统版本:macOS 10.15 Catalina 或更高版本。
- 处理器架构:Intel芯片或Apple Silicon (M1/M2/M3)。下载时请确保选择与您的Mac架构匹配的版本。
- 内存与磁盘空间:至少4GB RAM,推荐8GB以上;至少20GB的空闲磁盘空间。
3.2.2 下载与安装步骤
- 下载安装包:
访问Docker官方网站的Docker Desktop下载页面:https://www.docker.com/products/docker-desktop。
根据您的Mac处理器类型(Intel或Apple Silicon),点击相应的“Download for Mac”按钮,下载
Docker.dmg文件。 - 运行安装程序:
找到下载好的
Docker.dmg文件,双击打开。这将打开一个安装窗口,其中包含Docker图标和“Applications”文件夹的快捷方式。
- 将Docker应用程序拖动到“Applications”文件夹:
将Docker图标拖动到“Applications”文件夹图标上。
- 启动Docker Desktop:
安装完成后,打开“Applications”文件夹,双击“Docker”图标启动Docker Desktop。
首次启动时,macOS可能会要求您确认是否允许此应用程序运行,点击“Open”。
Docker Desktop会请求系统权限以安装必要的网络组件和特权工具,您可能需要输入您的macOS用户密码。
- 等待初始化完成:
Docker Desktop首次启动时会进行初始化,这可能需要一些时间来设置其内部虚拟机和组件。系统托盘中的Docker鲸鱼图标会显示动画直到完全启动。
您可能需要同意Docker的服务条款。
3.3 Linux操作系统(以Ubuntu为例)
在Linux上,Docker Engine通常通过官方提供的仓库进行安装,这确保了您可以获取到稳定且经过测试的版本,并且易于更新。以下以Ubuntu为例,其他发行版(如Debian、CentOS、Fedora等)的步骤类似,主要是在包管理器命令和仓库配置上有所不同,但基本逻辑一致。
3.3.1 卸载旧版本(如果存在)
如果您之前安装过旧版本的Docker(例如docker.io, docker-engine),建议先将其卸载以避免冲突:
sudo apt-get remove docker docker-engine docker.io containerd runc
此命令不会删除您已有的镜像、容器、卷或网络。如果您需要完全清除它们,请在卸载后手动删除相关目录:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
3.3.2 设置Docker仓库
为了从官方Docker仓库安装,您需要添加GPG密钥并设置仓库:
- 更新
apt包索引并安装必要的包以允许apt通过HTTPS使用仓库:
sudo apt-get updatesudo apt-get install ca-certificates curl gnupg - 添加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.gpg - 设置仓库:
使用以下命令设置稳定版仓库。请根据您的Ubuntu版本替换
$(. /etc/os-release && echo "$VERSION_CODENAME")部分(例如,对于Ubuntu 22.04 LTS是jammy,对于20.04 LTS是focal)。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 - 再次更新
apt包索引:在添加新的仓库后,再次更新包索引以包含Docker包:
sudo apt-get update
3.3.3 安装Docker Engine
现在可以安装Docker Engine、CLI、Containerd和Docker Compose插件:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完成后,Docker服务会自动启动。您可以使用以下命令检查其状态:
sudo systemctl status docker
如果服务没有运行,可以手动启动它:
sudo systemctl start docker
并设置其在系统启动时自动运行:
sudo systemctl enable docker
3.3.4 配置非root用户权限
默认情况下,只有root用户或具有sudo权限的用户才能运行Docker命令。为了避免每次都使用sudo,您可以将您的用户添加到docker组:
- 创建
docker组(如果不存在):
sudo groupadd docker - 将当前用户添加到
docker组:
sudo usermod -aG docker $USER - 重新登录或重启终端:
为了使组成员更改生效,您需要注销并重新登录您的会话,或者直接重启终端会话。此步骤非常重要,否则您仍然需要使用
sudo。
3.3.5 验证安装
运行一个简单的测试容器来验证Docker是否正确安装并运行:
docker run hello-world
如果一切正常,您应该会看到一条消息,说明Docker已成功运行了“hello-world”镜像。
3.3.6 其他Linux发行版简述
- Debian:与Ubuntu的安装过程非常相似,命令基本相同。
- CentOS/RHEL/Fedora (使用
dnf或yum):您需要安装
yum-utils,添加Docker的dnf/yum仓库,然后使用sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin进行安装。配置非root用户权限的步骤与Ubuntu类似。 - Arch Linux (使用
pacman):Docker通常在官方仓库中可用,通过
sudo pacman -S docker安装。需要手动启动和启用docker.service。
无论哪种Linux发行版,都强烈建议参考Docker官方文档(docs.docker.com/engine/install/)中针对您具体发行版的详细指南。
下载安装后:您需要做些什么?
成功下载并安装Docker只是第一步。接下来,您需要验证安装、进行基本配置,并了解如何开始使用容器。
4.1 首次运行与验证
无论您是Windows、macOS还是Linux用户,在安装完成后,验证Docker是否正常工作是至关重要的一步。最常用的方法是运行官方的hello-world镜像:
docker run hello-world
当您首次运行此命令时,Docker会执行以下操作:
- 检查本地是否有所需的
hello-world镜像。如果没有,它会从Docker Hub(Docker的官方镜像仓库)拉取(下载)该镜像。 - 使用该镜像创建一个新的容器。
- 运行容器内部的程序,该程序会打印一条包含“Hello from Docker!”等内容的欢迎信息。
- 容器执行完毕后自动退出。
如果一切顺利,您会看到一条类似以下内容的输出:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
... (下载进度) ...
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
... (其他诊断信息) ...
这表明您的Docker安装已成功,并且可以正常与Docker Engine通信。
4.2 配置Docker
根据您的具体需求和网络环境,您可能需要对Docker进行一些配置。
资源分配
- Docker Desktop (Windows/macOS):
在Docker Desktop的设置(Settings)中,导航到“Resources”部分。您可以在这里调整分配给Docker虚拟机的CPU核心数、内存大小和交换空间大小。根据您运行的容器数量和复杂性,适当增加这些资源可以提升性能。例如,如果您运行的应用程序需要大量内存,请确保为Docker分配足够的内存。
- Docker Engine (Linux):
在Linux上,Docker Engine直接使用宿主机的资源,因此没有独立的资源分配设置。您可以通过Linux自身的系统管理工具来监控和管理资源使用。
镜像加速器
由于网络环境原因,从Docker Hub拉取镜像有时会非常缓慢。配置镜像加速器可以显著改善下载速度。许多云服务提供商(如阿里云、腾讯云、DaoCloud等)都提供了免费的Docker镜像加速服务。
- Docker Desktop (Windows/macOS):
打开Docker Desktop设置(Settings),导航到“Docker Engine”选项卡。在右侧的JSON配置中,找到
"registry-mirrors"字段(如果没有则添加),然后将加速器地址添加进去。例如:{ "registry-mirrors": [ "https://你的加速器地址.mirror.aliyuncs.com" ], "insecure-registries": [], "debug": true, "experimental": false }点击“Apply & Restart”保存并重启Docker。
- Docker Engine (Linux):
编辑或创建Docker守护进程的配置文件
/etc/docker/daemon.json。如果文件不存在,请创建它。添加或修改registry-mirrors字段:sudo vim /etc/docker/daemon.json{ "registry-mirrors": ["https://你的加速器地址.mirror.aliyuncs.com"] }保存文件后,重启Docker服务以使更改生效:
sudo systemctl daemon-reloadsudo systemctl restart docker
代理设置
如果您的网络需要通过HTTP/HTTPS代理才能访问外部网络,您需要在Docker中配置代理设置。
- Docker Desktop (Windows/macOS):
在Docker Desktop设置(Settings)中,导航到“Proxies”选项卡。您可以选择“System Proxy”使用系统代理设置,或“Manual Proxy”手动配置HTTP/HTTPS代理地址。
- Docker Engine (Linux):
通常通过在
/etc/systemd/system/docker.service.d/http-proxy.conf(如果文件不存在则创建)中添加环境变量来配置:[Service] Environment="HTTP_PROXY=http://proxy.example.com:8080" Environment="HTTPS_PROXY=http://proxy.example.com:8080" Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecompany.com"保存文件后,重新加载systemd配置并重启Docker服务:
sudo systemctl daemon-reloadsudo systemctl restart docker
4.3 开始您的第一个容器
现在您已经安装并配置好了Docker,是时候运行一个更实用的容器了。例如,我们可以运行一个Nginx Web服务器:
docker run --name my-nginx -p 80:80 -d nginx
这个命令的含义是:
docker run:运行一个容器。--name my-nginx:为容器指定一个名称,方便以后引用。-p 80:80:将宿主机的80端口映射到容器的80端口。这意味着您可以通过访问宿主机的80端口来访问容器内部Nginx服务。-d:以后台(分离)模式运行容器,容器会在后台运行,不会占用您的终端。nginx:指定要使用的镜像名称。如果本地没有该镜像,Docker会自动从Docker Hub拉取最新版的Nginx镜像。
运行此命令后,您可以在浏览器中访问http://localhost(或您Linux服务器的IP地址),应该能看到Nginx的欢迎页面。
要停止并移除此容器:
docker stop my-nginx
docker rm my-nginx
要列出当前正在运行的容器:
docker ps
要列出本地所有镜像:
docker images
4.4 常见问题与解决方案
在使用Docker的过程中,您可能会遇到一些常见问题。
- 虚拟化未启用(Windows/macOS):
问题描述:Docker Desktop启动失败,提示需要启用虚拟化技术。
解决方案:进入您的电脑BIOS/UEFI设置,查找并启用“Intel VT-x”或“AMD-V”(也可能称为“Virtualization Technology”或“SVM Mode”)。保存设置并重启电脑。Windows用户还需要确保在“启用或关闭Windows功能”中勾选了Hyper-V或Windows虚拟机平台。
- WSL2相关问题(Windows):
问题描述:Docker Desktop提示WSL 2未正确安装或更新,或性能不佳。
解决方案:按照微软官方WSL安装指南,确保WSL 2已正确安装并更新到最新版本。在PowerShell中运行
wsl --update和wsl --set-default-version 2。检查Docker Desktop设置中的“WSL Integration”是否已启用。 - 权限问题(Linux):
问题描述:在Linux上运行
docker命令时,提示“Got permission denied while trying to connect to the Docker daemon socket”。解决方案:这是因为您的用户没有足够的权限访问Docker守护进程的Unix套接字。将您的用户添加到
docker组(如前面“配置非root用户权限”部分所述),然后注销并重新登录您的会话,或者重启系统。 - 网络连接问题:
问题描述:无法从Docker Hub拉取镜像,或容器内部无法访问外部网络。
解决方案:
- 检查网络连接是否正常。
- 如果在中国大陆,强烈建议配置镜像加速器。
- 如果您的网络需要代理,请正确配置Docker的代理设置。
- 检查防火墙规则,确保Docker所需的端口(如映射到宿主机的端口)没有被阻塞。
4.5 如何更新与卸载Docker?
4.5.1 更新Docker
- Docker Desktop (Windows/macOS):
Docker Desktop通常会自动检测并提示您有新版本可用。您只需点击弹窗中的“Update and Restart”按钮即可。也可以在Docker Desktop的设置中手动检查更新。
- Docker Engine (Linux):
通过您系统的包管理器来更新。例如,对于Ubuntu/Debian:
sudo apt-get updatesudo apt-get upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin对于CentOS/Fedora:
sudo dnf update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin更新后,可能需要重启Docker服务:
sudo systemctl restart docker
4.5.2 卸载Docker
- Docker Desktop (Windows):
在“控制面板” -> “程序和功能”中找到“Docker Desktop”,右键选择“卸载/更改”。或者在Windows 10/11的“设置” -> “应用”中找到并卸载。卸载程序会提示您是否保留数据或完全清除。
- Docker Desktop (macOS):
将“Applications”文件夹中的“Docker”应用程序拖动到废纸篓即可。如果您想完全清除所有相关文件(包括镜像、容器数据、卷、网络配置等),可以在卸载前在Docker Desktop的设置中找到“Troubleshoot” -> “Clean / Purge data”选项,或手动删除
~/Library/Containers/com.docker.docker等相关目录。 - Docker Engine (Linux):
通过系统包管理器卸载Docker Engine组件。例如,对于Ubuntu/Debian:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin这会卸载软件包,但不会删除镜像、容器、卷或用户创建的配置文件。要完全删除所有数据:
sudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerd同时移除Docker的仓库配置和GPG密钥(可选):
sudo rm /etc/apt/sources.list.d/docker.listsudo rm /etc/apt/keyrings/docker.gpgsudo apt-get update
通过遵循本指南,您应该能够顺利地下载、安装、配置和开始使用Docker,为您的开发和部署工作带来便利和效率。