Docker 命令
·
一、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
更多推荐


所有评论(0)