使用 Docker 之前,先要理解它的三个核心概念:镜像(Image)、容器(Container)、仓库(Repository)。三者构成一个闭环:从仓库拉取镜像,由镜像创建容器,容器运行后提交为新的镜像,再推送回仓库。本章将从安装出发,逐一拆解这三个概念,并深入镜像的分层存储原理——这是理解 Dockerfile 缓存与镜像瘦身的前提。
官方提供一键脚本,适用于绝大多数 Linux 发行版(截至 2026-09,Docker Engine 稳定版本线为 29.x):
curl -fsSL https://get.docker.com | bash安装完成后启动服务并验证:
systemctl enable --now docker
docker version # 查看 Client 与 Server 版本
docker run hello-world # 拉取测试镜像验证守护进程| 配置项 | 说明 |
|---|---|
| 用户组授权 | usermod -aG docker $USER,让普通用户免 sudo 执行 docker(需重新登录) |
| 镜像加速 | 配置 /etc/docker/daemon.json 的 registry-mirrors,加速国内拉取 |
| 开机自启 | systemctl enable docker,生产环境按需决定 |
国产服务器(阿里云、腾讯云等)通常自带镜像加速地址,按云厂商文档配置即可。
| 仓库 | 说明 |
|---|---|
| Docker Hub | 官方公共仓库,默认拉取源 |
| 私有仓库 | Harbor、Registry、云厂商镜像仓库 |
| 命名规则 | 仓库地址/命名空间/镜像名:标签,如 registry.example.com/team/app:v1.0 |
镜像由多个只读层叠加而成,每一层对应 Dockerfile 中的一条指令:
| 命令 | 作用 |
|---|---|
docker run -d --name web 11-Nginx基础概述 | 后台运行新容器 |
docker ps / docker ps -a | 查看运行中/全部容器 |
docker exec -it web bash | 进入容器执行命令 |
docker logs -f web | 实时查看日志 |
docker stop / docker start | 停止 / 启动 |
docker rm | 删除容器(需先停止) |
docker rmi | 删除镜像 |
# -p:端口映射(宿主机:容器);-v:数据卷持久化
# -e:环境变量;--restart:异常退出自动重启
docker run -d \
--name mysql-db \
-p 3306:3306 \
-v mysql_data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=secret \
--restart=always \
mysql:8.0| 方式 | 说明 | 适用 |
|---|---|---|
| 命名卷(volume) | Docker 管理,docker volume ls 可见 | 数据库等核心数据 |
| 绑定挂载(bind mount) | 挂载宿主机目录,./conf:/etc/11-Nginx基础概述/conf.d | 配置文件热更新 |
| tmpfs | 仅内存,重启即失 | 临时缓存 |
下一章介绍 Docker 图形化管理工具——Portainer 与 lazydocker,让容器管理告别黑屏命令行。