当前位置: 首页 > news >正文

【Docker基础篇】实用CLI命令指南:run/stop/exec/logs,日常开发高频使用不踩坑



🍃 予枫:个人主页

📚 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》
💻 Debug 这个世界,Return 更好的自己!

引言

作为程序员,CLI命令是日常开发、服务运维的“必备基本功”——不管是启动服务、停止进程,还是调试问题、查看日志,都离不开它。但很多新手容易记混命令用法,遇到服务启不动、日志查不到的问题就慌神。今天就聚焦CLI最常用的两大场景:生命周期管理与交互调试,把run、start/stop等核心命令讲透,新手也能跟着实操,告别“命令焦虑”~

文章目录

  • 引言
  • 一、CLI命令核心场景:先搞懂我们要用它做什么
  • 二、生命周期管理:6个核心命令,搞定服务“生老病死”
    • 2.1 启动服务:run vs start(别再用混!)
    • 2.2 停止服务:stop —— 安全终止,避免数据丢失
    • 2.3 查看运行状态:ps —— 一眼摸清服务情况
    • 2.4 删除服务:rm —— 清理无用服务,释放资源
    • 2.5 生命周期命令总结(快速记忆)
  • 三、交互与调试:3个命令,快速解决服务异常
    • 3.1 进入服务内部:exec -it —— 近距离查看运行情况
    • 3.2 查看运行日志:logs —— 定位报错的“关键线索”
    • 3.3 查看详细配置:inspect —— 排查配置异常
  • 四、总结

一、CLI命令核心场景:先搞懂我们要用它做什么

CLI(命令行界面)之所以成为程序员的“高频工具”,核心是它轻量化、高效,无需图形界面就能快速操作服务/进程。而我们日常最常用的,就是两大场景:

  1. 服务/进程的生命周期管理:从启动、停止,到查看运行状态、删除无用进程,覆盖服务从“诞生”到“终止”的全流程;
  2. 问题交互与调试:当服务运行报错、异常卡死时,通过命令进入容器/进程内部查看,或调取日志、查看详细配置,快速定位问题。

这两个场景覆盖了80%的CLI日常使用需求,吃透这两类命令,就能轻松应对大部分开发、运维场景,建议点赞收藏,后续实操时直接查阅~

二、生命周期管理:6个核心命令,搞定服务“生老病死”

生命周期管理的核心是“操控服务/进程”,重点掌握6个命令:run、start、stop、rm、ps,每个命令都有明确的使用场景,结合示例更易理解(以下示例适配主流CLI环境,可直接复制实操)。

2.1 启动服务:run vs start(别再用混!)

很多新手会混淆run和start,核心区别在于:run是“首次启动/重新启动”,start是“启动已存在但停止的服务/进程”

  • 命令1:run—— 核心启动命令,适用于首次启动服务,或重启已停止的服务(会重新初始化服务配置)
    示例:启动一个基础服务,后台运行

    # 后台启动服务,并指定服务名称为test-service cli run -d --name test-service

    关键参数说明:-d 表示“后台运行”,避免命令行被占用;–name 用于指定服务名称,后续操作该服务时直接用名称即可,无需记进程ID。

  • 命令2:start—— 启动已存在的服务,适用于服务被stop后,无需重新初始化,快速启动
    示例:启动已停止的test-service服务

    # 启动指定名称的服务 cli start test-service

    补充:如果服务不存在,用start会报错,此时必须用run命令初始化启动。

2.2 停止服务:stop —— 安全终止,避免数据丢失

当服务需要更新、维护,或出现轻微异常时,用stop命令安全停止服务,避免强制终止导致的数据丢失。

  • 命令:stop—— 停止指定服务/进程,支持按名称或进程ID停止
    示例1:按服务名称停止
    # 停止test-service服务 cli stop test-service
    示例2:按进程ID停止(适用于未指定服务名称的场景)
    # 停止进程ID为12345的服务(进程ID可通过ps命令查看) cli stop 12345
    注意:stop是“优雅停止”,服务会先完成当前任务,再终止;如果服务卡死,可搭配强制停止参数(具体参考自身CLI环境,一般为-f)。

2.3 查看运行状态:ps —— 一眼摸清服务情况

启动服务后,如何确认服务是否正常运行?ps命令就是“状态探测器”,能查看所有正在运行的服务/进程详情。

  • 命令:ps—— 查看运行中的服务/进程,可搭配参数过滤结果
    示例1:查看所有运行中的服务
    # 查看全部运行中的服务,显示服务名称、进程ID、运行时长 cli ps
    示例2:过滤指定服务的运行状态(精准查看某一个服务)
    # 只查看test-service的运行状态 cli ps | grep test-service
    实用技巧:ps命令的输出结果中,“STATUS”列显示服务状态,“Up”表示正常运行,“Exited”表示已停止,新手可重点关注这一列。

2.4 删除服务:rm —— 清理无用服务,释放资源

服务停止后,如果不再需要,用rm命令删除,避免占用系统资源(删除后服务配置会被清空,需谨慎操作)。

  • 命令:rm—— 删除已停止的服务/进程,无法删除正在运行的服务
    示例:删除已停止的test-service服务
    # 删除指定名称的服务 cli rm test-service
    警告:rm命令会彻底删除服务及相关临时配置,删除前务必确认服务已停止,且不再需要,避免误删导致数据丢失。

2.5 生命周期命令总结(快速记忆)

为了方便大家记忆,整理了一句口诀:“run启动、start续跑,stop停止、ps查看,rm清理别乱点”,结合上面的示例实操2-3次,就能彻底记住,不用死记硬背~

三、交互与调试:3个命令,快速解决服务异常

服务运行中难免会出现报错、卡死等问题,此时就需要用到交互与调试命令,重点掌握exec -it、logs、inspect,帮你快速定位问题、解决问题。

3.1 进入服务内部:exec -it —— 近距离查看运行情况

当服务报错,但不知道内部配置、文件是否异常时,用exec -it命令进入服务/容器内部,像操作本地文件一样查看详情、执行命令,相当于“钻进服务里排查问题”。

  • 命令:exec -it—— 进入服务/容器内部,开启交互模式
    示例:进入test-service服务内部,开启bash交互(可执行ls、cat等命令)

    # 进入test-service内部,bash交互模式 cli exec -it test-service /bin/bash

    关键参数说明:-i 表示“保持标准输入打开”,-t 表示“分配伪终端”,两者结合就能开启交互模式;/bin/bash 表示进入后使用bash命令行(不同环境可能替换为sh,根据自身情况调整)。

    实用场景:进入内部后,可查看配置文件(cat 配置文件路径)、查看运行中的进程(ps aux),快速排查“外部无法看到”的内部异常。

3.2 查看运行日志:logs —— 定位报错的“关键线索”

服务报错时,最直接的排查方式就是查看运行日志——日志会记录服务启动、运行中的所有操作和报错信息,是定位问题的“核心线索”。

  • 命令:logs—— 查看服务运行日志,支持实时查看、过滤日志
    示例1:查看test-service的全部日志(从启动到当前)
    # 查看指定服务的全部日志 cli logs test-service
    示例2:实时查看日志(最常用,适用于服务正在报错的场景)
    # 实时跟踪test-service的日志,新的日志会实时输出 cli logs -f test-service
    示例3:过滤错误日志(快速找到报错信息,避免日志过多干扰)
    # 查看test-service的日志,只显示包含“error”的行(大小写敏感) cli logs test-service | grep "error"
    补充:如果日志过多,可搭配–tail参数查看最新的N行日志(如–tail 100,查看最新100行),提高排查效率。

3.3 查看详细配置:inspect —— 排查配置异常

如果服务启动失败,怀疑是配置错误,但又找不到配置文件时,用inspect命令查看服务的详细配置信息——包括启动参数、挂载路径、环境变量等,全方位排查配置问题。

  • 命令:inspect—— 查看服务/进程的详细配置,输出为JSON格式
    示例:查看test-service的详细配置
    # 查看test-service的全部配置信息 cli inspect test-service
    实用技巧:JSON格式的输出可能较长,可搭配过滤命令,只查看需要的配置(如查看环境变量):
    # 查看test-service的环境变量配置 cli inspect test-service | grep "Environment"

四、总结

本文聚焦CLI命令最常用的两大场景:生命周期管理与交互调试,重点讲解了run、start/stop、rm、ps(生命周期)和exec -it、logs、inspect(交互调试)7个核心命令,每个命令都搭配了实操示例和参数说明,新手可直接复制实操。

CLI命令的核心是“实用”,不用死记硬背,多结合实际场景练习2-3次,就能熟练掌握;后续遇到命令相关的问题,可随时回头查阅这篇文章。


评论区互动:你平时最常用的CLI命令是什么?有没有遇到过命令用错导致的坑?欢迎留言分享,一起避坑、提升效率~
如果觉得这篇文章对你有帮助,别忘了点赞、收藏,关注我(予枫),后续分享更多CLI实用技巧和开发干货!

http://www.jsqmd.com/news/375364/

相关文章:

  • AI原生应用领域持续学习:构建技术知识体系的秘诀
  • 2026年2月护资模拟考试app权威推荐,界面流畅刷题更稳定 - 品牌鉴赏师
  • 【Docker基础篇】从0到1写Dockerfile:FROM/COPY/CMD/ENTRYPOINT指令详解+Hello World实战
  • 大规模语言模型的反事实推理与情景模拟
  • 2026最新十大知名全屋定制板材品牌推荐榜!优质环保品质与高性价比源头厂家选择指南,环保耐用适配多场景 - 品牌推荐2026
  • Elasticsearch 与 Cassandra 集成:处理超大规模数据
  • 深入解析:深度学习任务分类与示例(一)
  • 代码复现:深度残差收缩网络的完整Python程序代码复现:深度残差收缩网络的完整Python程序
  • LaTeX常用符号使用随笔
  • 4K/60帧+电脑反控手机?实测这款“蓝莓投屏”:延迟低至30ms,把竞品按在地上摩擦
  • 仿微信聊天软件源码深度解析:从架构设计到多端数据互通实现思路
  • 两天停PanelAI开发,突发奇想用AI写了个免费开源网址导航主题+WordPress后台
  • 市面气柜存在诸多问题,万伯双膜储气柜如何解决?
  • 基于深度学习YOLOv12的脑肿瘤识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • JAVA工具版本差异带来的困挠
  • 基于深度学习YOLOv11的草莓成熟度识别检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 悲壮的先知——柏拉图说了些什么
  • day84(2.12)——leetcode面试经典150
  • 《人工智能的数学基础》第二章习题(群部分)【未完成】
  • Java中设计图像处理工具(一)
  • 基于深度学习YOLOv12的玉米幼苗杂草识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • Es/Kibana7.17.9中资料迁移到openSearch3.4.0【DockerDesktop模拟】
  • 基于深度学习YOLOv12的草莓成熟度检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 深入解析:如何在 Windows 11/10 电脑上永久删除文件
  • 基于深度学习YOLOv12的铁路轨道缺陷检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 基于深度学习YOLOv11的铁轨轨道缺陷检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 2026国自然申报倒计时:如何利用AI辅助工具高效完成申请书撰写
  • 普通Fetch和Fetch 流式的区别?
  • 前端组件上新:全球数字货币符号展示的“标准答案”
  • 集星獭 | 让集成“看得见、管得住”——四大监控能力实战指南