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


🍃 予枫个人主页
📚 个人专栏 : 《Java 从入门到起飞》《读研码农的干货日常

💻 Debug 这个世界,Return 更好的自己!


引言

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

文章目录

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

相关推荐
市安3 小时前
基于Debain构建Ngxin镜像
运维·nginx·docker·云原生·容器·debian·镜像
AI逐月3 小时前
Mac 轻量安装 Docker 完整指南(Docker + Colima + Kubernetes)
macos·docker·kubernetes
Aric_Jones3 小时前
博客音乐播放器实现全解析
java·运维·数据库·人工智能·docker·容器·eclipse
处女座_三月3 小时前
docker 运行项目配置cuda
运维·docker·容器
予枫的编程笔记4 小时前
【Docker基础篇】从0到1写Dockerfile:FROM/COPY/CMD/ENTRYPOINT指令详解+Hello World实战
人工智能·docker·云计算·dockerfile·容器技术·docker入门·docker实战
山野0204 小时前
从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)
docker·容器·node.js
Ffe14 小时前
Linux提权五:Rbash绕过&Docker&LXD镜像
linux·docker·lxd·提权笔记总结
行走的陀螺仪4 小时前
GitLab + GitLab Runner 本地 Docker 部署实战文档
ci/cd·docker·gitlab·php·gitlab-runner