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
相关推荐
倔强的胖蚂蚁3 小时前
Ollama 大模型参数调整
运维·人工智能·云原生
努力搬砖的咸鱼18 小时前
Label 与 Selector:Kubernetes 资源选择的核心机制
微服务·云原生·容器·架构·kubernetes
IT大师兄吖1 天前
Qwen3 ASR 流式转写 Docker 懒人整合包
docker·容器·eureka
立莹Sir1 天前
SaaS多租户资源隔离的云原生解决方案:在不单独部署的情况下实现租户级资源保障
云原生
rockmelodies1 天前
用 Python 实现 Docker 镜像批量推送(带进度条)
python·docker·eureka
人道领域1 天前
GPT-5架构泄露?Kubernetes 1.31发布与Rust重构浪潮下的云原生之变
gpt·云原生·架构
刘~浪地球1 天前
云原生与容器--Service Mesh (Istio) 入门实战
云原生·istio·service_mesh
倔强的胖蚂蚁1 天前
Gemma4 优势与 Ollama 更新
运维·云原生
立莹Sir1 天前
【架构图解+实战配置】SaaS多租户资源隔离的云原生完整方案
云原生·架构