news 2026/5/6 23:54:33

Docker 学习篇(五)| Docker 常用命令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 学习篇(五)| Docker 常用命令

Docker 学习篇(五)| Docker 常用命令

    • 镜像管理
    • 容器管理
    • 日志与排查
    • 文件操作
    • 网络
    • Docker Compose
    • 清理
    • 容器卡死抢救
    • 镜像文件导入导出(tar.gz 处理)

镜像管理

dockerimages# 查看所有镜像dockerimages-q# 只显示镜像 IDdockerpull 镜像名:版本# 拉取镜像(不写版本默认 latest)dockerpull mysql:8.0# 示例dockerrmi 镜像名:版本# 删除镜像dockerrmi-f$(dockerimages-q)# 清空所有本地镜像(谨慎!)dockertag 镜像ID 新名称:新标签# 重命名/打标签dockerload-i文件.tar# 从 tar 文件导入镜像dockersave-o文件.tar 镜像名# 导出镜像为 tar 文件dockerbuild-t镜像名:标签.# 从 Dockerfile 构建镜像dockerbuild --no-cache-t镜像名:标签.# 强制全量重建(不用缓存)

容器管理

# 启动dockerrun-d--name容器名-p宿主机端口:容器端口 镜像名:版本dockerrun-d--nameblog-mysql-p3307:3306\-eMYSQL_ROOT_PASSWORD=root\-vD:/data/mysql:/var/lib/mysql\--restartunless-stopped\mysql:8.0# 完整示例# 查看dockerps# 运行中的容器dockerps-a# 所有容器(含已停止)dockerps-q# 只显示运行中容器的 ID# 生命周期dockerstart 容器名# 启动已存在的容器dockerstop 容器名# 停止dockerrestart 容器名# 重启dockerrm容器名# 删除(必须先 stop)dockerrm-f容器名# 强制删除(不用先 stop)dockerrm-f$(dockerps-aq)# 删除所有容器(谨慎!)# 资源监控dockerstats# 实时查看所有容器 CPU/内存/网络(Ctrl+C 退出)dockerstats 容器名# 只看指定容器# 自启策略dockerrun--restartalways...# 启动时设自启dockerupdate--restartalways 容器名# 改已有容器的自启策略dockerupdate--restartno$(dockerps-q)# 取消所有容器自启

日志与排查

dockerlogs 容器名# 查看日志dockerlogs-f容器名# 实时跟踪(Ctrl+C 退出)dockerlogs--tail50容器名# 只看最近 50 行dockerlogs-tf容器名# 带时间戳实时跟踪dockerlogs-f--tail100容器名# 最后 100 行开始实时跟踪dockerexec-it容器名bash# 进入容器(alpine 镜像用 sh)dockerexec-it容器名sh# alpine 系镜像用这个dockertop容器名# 查看容器内进程dockerinspect 容器名# 查看容器完整配置(JSON)dockerinspect-f'{{.State.Pid}}'容器名# 只看 PID

文件操作

# 宿主机 → 容器dockercp宿主机路径 容器名:容器路径dockercpapp.jar blog-server:/app/app.jar# 容器 → 宿主机dockercp容器名:容器路径 宿主机路径dockercpblog-server:/app/logs ./logs# 容器内目录参考# 后端应用:取决于 Dockerfile 的 WORKDIR,常见 /app 或 /# 前端静态文件:/usr/share/nginx/html(Nginx 默认)# 不确定的话先 docker exec -it 进去看一下

网络

dockernetworkls# 查看所有网络dockernetwork create 网络名# 创建自定义网络dockernetwork inspect 网络名# 查看网络详情(含容器列表和 IP)dockernetworkrm网络名# 删除网络dockerrun--network网络名...# 指定容器加入某网络# compose 自动建网络:默认 <项目名>_default;自定义网络(如 blog-net)→ <项目名>_blog-net# 同一网络内,service 名 = DNS 域名,容器间直接用服务名互访

Docker Compose

dockercompose up-d# 启动所有服务dockercompose down# 停止并删除容器+网络(加 -v 同时删数据卷)dockercompose stop# 只停止,不删除dockercompose restart# 重启所有服务dockercompose restart 服务名# 重启单个服务dockercomposeps# 看当前项目容器状态dockercompose logs-f# 所有容器日志dockercompose logs-f服务名# 只看某个服务日志dockercomposeexec服务名bash# 进入 compose 管理的容器(alpine 用 sh)dockercompose build# 构建/重新构建所有服务的镜像dockercompose build 服务名# 只构建指定服务dockercompose up-d--build# 重建镜像再启动dockercompose up-d--force-recreate--build# 强制重建所有容器dockercompose-f指定文件.yml up-d# 用指定 yml 文件启动dockercompose pull# 拉取 compose 中所有镜像(不启动)dockercompose config# 校验 yml 文件语法是否正确

改 yml 配置后重跑up -d,没变的服务不动,变了的自动重建。改源码则需要加--build重新构建镜像。


清理

dockersystemdf# 查看 Docker 占用磁盘空间dockersystem prune# 清理停止的容器、未用网络、悬空镜像dockersystem prune-a# 加上所有未用镜像一起清dockervolume prune# 清理未挂载的数据卷dockerbuilder prune# 清理构建缓存

docker system df看一下占用,再决定清什么。每月跑一次prune,磁盘告急跑-a


容器卡死抢救

docker stop/docker kill都不响应时:

# 1. 获取容器主进程 PID(两行在同一 shell 会话执行)PID=$(dockerinspect-f'{{.State.Pid}}'容器名或ID)kill$PID# 如果 kill 不响应,升级为强杀:kill -9 $PID# 2. 确认已停止dockerps-a# 3. 清理并重建dockerrm-f容器名dockercompose up-d

镜像文件导入导出(tar.gz 处理)

# 导出dockersave-o镜像.tar 镜像名:标签# 导入dockerload-i镜像.tar# 如果是 .tar.gz 格式gunzip-c镜像.tar.gz|dockerload# 管道方式(最可靠)dockerload-i镜像.tar.gz# 部分新版 Docker 支持直接导入 gz# 判断文件真实类型file镜像.tar.gz# 输出 "POSIX tar archive" → 实际是 .tar(被人改了后缀)# 输出 "gzip compressed data" → 真正的 .tar.gz
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 23:53:32

五分钟快速上手:如何免费获取八大网盘真实下载链接告别限速烦恼

五分钟快速上手&#xff1a;如何免费获取八大网盘真实下载链接告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云…

作者头像 李华
网站建设 2026/5/6 23:48:47

从STM32转战STC32G:智能车备赛实战,聊聊库函数那些“更香”的设计

从STM32到STC32G&#xff1a;智能车开发中的库函数设计哲学与实战迁移指南 当你在深夜的实验室里调试智能车的转向算法&#xff0c;却发现STM32的PWM配置代码已经堆叠到第三层嵌套时&#xff0c;或许该重新审视国产STC32G带来的开发体验革新。作为经历过全国大学生智能车竞赛的…

作者头像 李华
网站建设 2026/5/6 23:44:45

cJSON实战:手把手教你解析天气预报API返回的复杂嵌套JSON数据

cJSON实战&#xff1a;从天气预报API解析复杂嵌套JSON的完整指南 天气预报应用已经成为现代人日常生活不可或缺的工具。当我们调用天气API时&#xff0c;服务器通常会返回结构复杂的JSON数据&#xff0c;包含多日预报、空气质量指数等嵌套信息。对于C语言开发者来说&#xff0c…

作者头像 李华
网站建设 2026/5/6 23:42:45

体验 Taotoken 多模型聚合路由带来的高可用性与低延迟响应

体验 Taotoken 多模型聚合路由的稳定与响应表现 1. 多模型路由的核心价值 在构建依赖大模型能力的应用时&#xff0c;开发者往往面临单一服务商可能出现的临时性波动或响应延迟问题。Taotoken 提供的多模型聚合路由功能&#xff0c;允许通过统一 API 接入多个主流模型服务&am…

作者头像 李华
网站建设 2026/5/6 23:41:10

解决 OpenClaw 2.6.6 部署中断与文件拦截问题

OpenClaw 2.6.6 本地部署常见问题与解决方案&#xff5c;一键排障指南 OpenClaw 2.6.6 一键部署包&#xff1a;https://xiake.yun/api/download/package/12?promoCodeIV3FAC171F46 在使用 OpenClaw 2.6.6 一键部署工具进行环境配置时&#xff0c;部分安全防护软件会对程序运行…

作者头像 李华