1. Docker 简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 App),更重要的是容器性能开销极低。
2. Docker 安装
本节将详细介绍在不同操作系统上安装 Docker 的过程。主要以 Ubuntu 为例,并简要提及其他常见操作系统。
2.1 Ubuntu 系统安装 Docker Engine
在 Ubuntu 系统上安装 Docker Engine,推荐使用 Docker 官方的 apt
仓库进行安装,这样可以确保获取到最新且官方支持的版本。
2.1.1 卸载旧版本(如果存在)
在安装新版本之前,建议卸载任何可能存在的旧版本或冲突的 Docker 相关软件包。这可以避免潜在的兼容性问题。
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
2.1.2 设置 Docker 的 apt
仓库
-
更新
apt
包索引并安装必要的软件包,以允许apt
通过 HTTPS 使用仓库:sudo apt-get update sudo apt-get install ca-certificates curl
-
添加 Docker 官方的 GPG 密钥:
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
-
将 Docker 仓库添加到
apt
源列表:echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
2.1.3 安装 Docker Engine
安装最新版本的 Docker Engine、Containerd 和 Docker Compose 插件:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.1.4 验证安装
运行 hello-world
镜像来验证 Docker Engine 是否已成功安装并运行:
sudo docker run hello-world
如果一切正常,您将看到一条确认消息,表明 Docker 已成功安装。
3. Docker 配置
4. Docker 常用命令详解
2.2 其他操作系统安装
对于 Windows 和 macOS 用户,最简单的方式是安装 Docker Desktop。Docker Desktop 包含了 Docker Engine、CLI、Compose、Kubernetes 以及其他必要的工具,提供了一个集成的开发环境。
-
Windows: 访问 Docker Desktop for Windows 下载安装包并按照提示进行安装。安装过程中可能需要启用 WSL 2 和 Hyper-V 功能。
-
macOS: 访问 Docker Desktop for Mac 下载安装包并按照提示进行安装。
3.1 配置镜像加速器
由于网络原因,从 Docker Hub 拉取镜像可能会很慢。配置镜像加速器可以显著提高镜像下载速度。国内常用的镜像加速器有阿里云、网易云等。
3.1.1 Linux 系统配置
对于 Linux 系统,可以通过修改 Docker 守护进程的配置文件 /etc/docker/daemon.json
来配置镜像加速器。如果文件不存在,则创建它。
{
"registry-mirrors": ["https://<your-mirror-address>"]
}
将 <your-mirror-address>
替换为您的镜像加速器地址。例如,阿里云的镜像加速器地址通常以 https://xxxxxx.mirror.aliyuncs.com
形式提供。您可以在阿里云容器镜像服务中获取您的专属加速器地址。
修改或创建文件后,需要重启 Docker 服务使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
3.1.2 Docker Desktop 配置
对于 Docker Desktop 用户,可以通过图形界面进行配置:
-
点击 Docker Desktop 图标,选择 Settings (Windows) 或 Preferences (macOS)。
-
导航到 Docker Engine 或 Resources -> Docker Engine (不同版本可能略有差异)。
-
在配置框中找到
registry-mirrors
字段,添加或修改镜像加速器地址,例如:{ "registry-mirrors": ["https://<your-mirror-address>"] }
-
点击 Apply & Restart 保存并重启 Docker。
3.2 配置 Docker 用户组(Linux)
在 Linux 系统上,默认情况下只有 root
用户或具有 sudo
权限的用户才能运行 Docker 命令。为了让非 root
用户也能运行 Docker 命令,可以将用户添加到 docker
用户组。
-
创建
docker
用户组(如果不存在):sudo groupadd docker
-
将当前用户添加到
docker
用户组:sudo usermod -aG docker $USER
-
注销并重新登录,或者重启系统,以使更改生效。您也可以运行
newgrp docker
命令来立即激活用户组更改,但这种方式只对当前会话有效。
验证是否成功:
docker run hello-world
如果无需 sudo
即可成功运行,则表示配置成功。
4. Docker 常用命令详解
Docker 提供了强大且灵活的命令行工具集,用于管理 Docker 生态系统中的各个组件,包括镜像(Images)、容器(Containers)、网络(Networks)和数据卷(Volumes)。本节将对这些常用命令进行详细的解释,并提供实际示例,帮助您更好地理解和使用 Docker。
4.1 镜像管理命令
镜像(Image