一、Docker命令体系

1. 常用子命令(必须掌握)

命令作用
run从镜像创建并运行新容器
exec在运行中的容器内执行命令
ps列出容器
build通过 Dockerfile 构建镜像
pull从仓库下载镜像
push上传镜像到仓库
images列出本地镜像
search在 Docker Hub 搜索镜像
version / info查看版本或系统信息

2. 容器管理子命令(必须掌握)

命令作用
create创建容器(不启动)
start / stop / restart启停容器
rm删除容器(-f 强制删除运行中容器)
kill强制终止容器(可指定信号)
logs查看容器日志
top查看容器内进程
rename重命名容器
inspect查看容器/镜像的详细配置(支持 Go 模板过滤)

3. 全局选项(了解)

  • -H, --host:指定 Docker 守护进程地址

  • --tlsverify:启用 TLS 验证

  • --log-level:设置日志级别


二、镜像管理

核心概念

  • 镜像:只读模板,包含文件系统和应用。

  • 镜像层:多个只读层叠加,每层记录文件系统的增量变化。

  • Dockerfile:自动化构建镜像的文本文件。

  • 镜像仓库:存储镜像的地方(如 Docker Hub)。

镜像分层与 CoW 机制

  • 分层优势:共享基础层,节省存储和带宽;支持多种 Linux 发行版共存。

  • Copy-on-Write (写时复制)

    • 镜像只读,容器层可写。

    • 读取文件:从上往下查找,找到后复制到容器层。

    • 修改/删除文件:复制到容器层后再操作。

    • 容器层保存所有变化,镜像本身不变。

镜像表示

text

[registry]/[namespace]/[repository]:[tag]
  • 示例:docker.io/library/nginx:latest

  • 官方镜像可省略 registry 和 namespace。

镜像制作方式

方式说明
Dockerfile自动化构建(推荐)
docker commit从容器生成镜像
docker load / save导入/导出 tar 包
docker pull从仓库下载

镜像管理命令

命令作用
images列出本地镜像
pull / push下载 / 上传镜像
tag给镜像打标签
rmi删除镜像
inspect / history查看镜像详情和历史层
save / load导出 / 导入镜像为 tar 文件
commit容器 → 新镜像

三、容器管理

容器本质

  • 容器是进程,运行在独立的命名空间中(PID、网络、用户等)。

  • 拥有自己的 root 文件系统、网络配置、进程空间。

docker run 常用参数(重点)

参数说明
--name指定容器名
-d后台运行(守护进程)
-it交互式运行(分配伪终端)
-p端口映射 主机端口:容器端口
-P随机映射暴露的端口
-v挂载卷
-e设置环境变量
-h设置容器主机名
--restart重启策略:no / always / on-failure / unless-stopped
--rm容器退出后自动删除
--privileged赋予扩展权限

容器生命周期与状态

  • created:已创建未运行(docker create

  • running (Up):正在运行

  • exited:已退出(正常或错误)

  • paused:已暂停

容器退出状态码(常见)

含义
0正常退出
1通用错误(应用错误)
137被 SIGKILL 强制终止(如 OOM)
139段错误(内存访问违规)

常用操作命令

命令说明
exec -it <容器> bash进入容器执行命令
logs -f <容器>跟踪日志
ps -a列出所有容器(含已退出)
inspect查看 IP、端口、挂载点等(配合 -f 模板)
rename重命名容器

四、课堂练习示例(镜像拉取、打包、恢复)

bash

# 搜索并拉取 Redis 镜像
docker search redis
docker pull redis:latest

# 保存镜像为 tar 文件
docker save redis:latest -o redis.tar

# 删除本地镜像
docker rmi redis:latest

# 从 tar 文件加载镜像
docker load -i redis.tar

更多推荐