0. Docker 简介
Docker 是一个开源平台,旨在帮助开发者构建、运行和交付应用程序。它通过容器化技术将应用程序及其所有依赖项打包在一个标准化的单元(即容器)中,使得应用程序在任何环境中都能保持一致的运行效果。Docker 提供了一个轻量级、高效且易于使用的方式来管理和部署应用,从而简化了应用的开发和运维流程。无论是在本地开发环境、测试环境还是生产环境中,Docker 都能确保应用的可移植性和稳定性。
1. Docker 和虚拟机的区别
Docker 和虚拟机(VM)在虚拟化方式和资源使用上存在显著区别。虚拟机通过硬件虚拟化在物理机器上创建完整的虚拟操作系统,每个虚拟机都有独立的操作系统,资源消耗较大且启动较慢。与此不同,Docker 使用容器化技术直接在宿主操作系统上运行,容器共享宿主操作系统的内核,因而更加轻量、启动速度更快,资源消耗更低。虽然虚拟机提供更强的硬件级别隔离,Docker 容器则依赖操作系统内核进行隔离,隔离性相对较弱,但在大多数应用场景下已足够。总体而言,Docker 更加高效,适合微服务和快速部署,而虚拟机则适用于需要完整操作系统隔离的场景。
2. 基本原理和概念
2.1 Docker 架构
Docker 的架构由三部分组成:客户端(Client)、服务端(Docker Host)以及镜像仓库(Registry)。客户端是用户与 Docker 的交互接口,通过命令行工具(如 docker run、docker build、docker pull)向 Docker 守护进程(Daemon)发送请求。服务端是 Docker 的核心运行环境,包括守护进程、镜像和容器,其中守护进程负责接收客户端请求并管理容器的生命周期(创建、运行、停止等),镜像是容器的基础,容器则是镜像的运行实例。镜像仓库用于存储和分发 Docker 镜像,支持公共(如 Docker Hub)或私有仓库,用户可以通过 docker pull 从仓库拉取镜像,或通过 docker push 将本地镜像上传到仓库。
2.2 基本概念
镜像(Images):镜像是一个只读模板,包含运行容器所需的应用程序和依赖,例如基于 Ubuntu 的镜像可以预装 MySQL 或 Nginx。
容器(Containers):容器是镜像的实例,提供独立的运行环境,通过共享宿主操作系统内核实现轻量级隔离和快速启动。
命令操作:Docker 提供了常用命令,包括 docker build 用于构建镜像,docker run 用于启动容器,docker pull 用于从仓库拉取镜像。
镜像仓库(Registry):镜像仓库是存储 Docker 镜像的地方,如 Docker Hub 或私有仓库,包含 Redis、MongoDB 等常见应用的官方镜像。
2.3 运行流程
Docker 的运行流程包括用户通过客户端执行命令(如 docker build、docker run),由 Docker 守护进程接收并处理这些命令,完成镜像的创建或容器的启动。如果命令需要使用镜像,守护进程会从镜像仓库拉取所需镜像(docker pull)。随后,容器基于镜像启动并在宿主系统上运行,实现资源隔离和应用部署。
3. 安装和部署
3.1 系统要求
Docker 在 Windows 上的系统要求包括操作系统、硬件和软件三个方面。操作系统需为 Windows 10 64-bit 专业版、企业版或教育版(Build 1903 或更高)或任意版本的 Windows 11。硬件方面,需要至少 4GB 内存,并且处理器需支持虚拟化(如 Intel VT-x 或 AMD-V 并已启用)。在软件要求上,需要启用 WSL2(Windows Subsystem for Linux),并安装 Windows 的 Hyper-V 功能(Docker Desktop 会自动完成配置)。
3.2 安装步骤
要安装 Docker Desktop,首先前往 Docker 官方网站 下载最新版的安装程序。下载完成后,双击运行安装程序(.exe 文件),在安装过程中勾选 "Install required Windows components for WSL 2",然后点击 Install 进行安装。安装完成后,点击 Close and Restart 按钮,重启计算机以完成配置。
WSL2(Windows Subsystem for Linux 2)是微软开发的一种在 Windows 上运行 Linux 二进制可执行文件的子系统。与传统的虚拟机不同,WSL2 提供了一个更轻量级的 Linux 环境,允许用户在 Windows 系统中无缝地运行 Linux 命令行工具和应用。Docker Desktop 使用 WSL2 作为其后端环境的运行基础,这是因为 WSL2 提供了一个高效的方式来在 Windows 系统中运行 Linux 容器。
# 打开 PowerShell(以管理员身份运行):
wsl --install
# 设置默认 WSL 版本为 2(确保 Docker 使用 WSL2):
wsl --set-default-version 2
# 安装所需的 Linux 发行版(如 Ubuntu):
wsl --install -d Ubuntu
# 登录 docker 账号
docker login
安装完成后,启动 Docker Desktop,并按照提示登录 Docker Hub(如无账号,可创建一个免费账号)。登录后,确认 Docker Desktop 已正常启动,并确保界面显示 "WSL 2 backend is running",表明 Docker 已成功启用 WSL 2 后端运行模式。
此外需要更新镜像源,具体指令如下所示:
# 查看 Ubuntu 版本
lsb_release -a
# 备份当前的源列表
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
# 打开文本编辑器
sudo vim /etc/apt/sources.list.d/ubuntu.sources
# 阿里云
Types: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 更新源列表
sudo apt-get update
# 更新系统软件包
sudo apt-get upgrade
此外需要开启虚拟环境:
# 安装 venv 模块
sudo apt-get update
sudo apt-get install python3-venv
# 创建虚拟环境
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
# 退出虚拟环境
deactivate
GitHub 相关配置问题,详细操作参考链接。