Docker 基本概念与安装指南
Docker 基本概念与安装指南
一、Docker 核心概念
1. 容器(Container)
容器是 Docker 的核心运行单元,本质是一个轻量级的沙盒环境。它基于镜像创建,包含应用程序及其运行所需的依赖(如代码、库、环境变量等),但与宿主机和其他容器隔离,确保环境一致性。
2. 镜像(Image)
镜像是容器的静态模板,类似于面向对象中的“类”。它通过分层存储(Layer)实现高效复用,用户可通过 Dockerfile 自定义镜像,或从公共仓库(如 Docker Hub)拉取预构建镜像。
3. 仓库(Registry)
仓库用于存储和分发镜像,分为公共仓库(如 Docker Hub)和私有仓库。用户可通过 docker push 和 docker pull 命令上传或下载镜像。
4. Docker 与虚拟机的区别
虚拟机:需模拟完整操作系统,资源占用高,启动慢。
Docker 容器:共享宿主机内核,资源占用低,启动秒级完成。
5. Dockerfile 与 Docker Compose
Dockerfile:定义镜像构建步骤的脚本文件。
Docker Compose:通过 YAML 文件管理多容器应用的编排工具。
二、Docker 安装步骤
1. Linux 系统(以 Ubuntu 为例)
# 1. 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc
# 2. 安装依赖工具
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 3. 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 4. 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. 安装 Docker 引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 6. 验证安装
sudo docker run hello-world
权限配置(非 root 用户运行 Docker)
sudo usermod -aG docker $USER # 将当前用户加入 docker 组
newgrp docker # 刷新用户组
2. Windows 系统
要求:Windows 10/11 64位,支持 WSL2(Windows Subsystem for Linux 2)。
步骤:
-
- 启用 WSL2 功能:在 PowerShell 中执行 wsl --install。
- 下载并安装 Docker Desktop for Windows。
- 启动 Docker Desktop,在设置中启用 WSL2 后端。
- 验证:在终端运行 docker run hello-world。
3. macOS 系统
要求:macOS 10.15 或更高版本。
步骤:
-
- 下载并安装 Docker Desktop for Mac。
- 双击安装包,将 Docker 拖入 Applications 文件夹。
- 启动 Docker,在菜单栏中确认状态为“Running”。
- 验证:终端运行 docker run hello-world。
三、快速入门示例
1. 运行 Nginx 容器
docker run -d -p 8080:80 --name my-nginx nginx
-d:后台运行容器。
-p 8080:80:将宿主机 8080 端口映射到容器的 80 端口。
访问 http://localhost:8080 查看 Nginx 默认页面。
2. 构建自定义镜像
创建 Dockerfile 文件:
FROM alpine:latest
RUN apk add --no-cache python3
CMD ["python3", "--version"]
构建并运行:
docker build -t my-python .
docker run my-python
四、常见问题与解决
- 权限拒绝错误
现象:执行 docker 命令时提示 Permission denied。
解决:将用户加入 docker 组并重启会话(见 Linux 安装步骤)。
- 镜像拉取缓慢
配置国内镜像加速器(如阿里云、中科大源),修改 /etc/docker/daemon.json:
"registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"] }