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
相关推荐
秋播2 小时前
国内本地WSL2编译rancher源码
云原生
小猿姐2 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
阿里云云原生3 天前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
JLWcai202510093 天前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
互联网推荐官3 天前
上海软件定制开发公司推荐:从PaaS工程化路径看D-coding的技术取舍
云原生·云计算·paas·软件开发·开发经验·上海
sbjdhjd3 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
java_cj4 天前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
步步为营DotNet4 天前
基于.NET Aspire 实现云原生应用的高效监控与可观测性
云原生·.net·wpf
牛奶咖啡134 天前
KVM虚拟化与企业应用实践——给远端主机创建虚拟机
云原生·qemu·kvm·给远端主机创建虚拟机·创建uefi模式的虚拟机·安装openeulersp2·vnc与虚拟机环境搭建