ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

mac-setup 项目 Docker 常用命令速查指南:build、run、exec、logs 等核心命令的完整参数说明与实战用法

mac-setup 项目 Docker 常用命令速查指南:build、run、exec、logs 等核心命令的完整参数说明与实战用法 文档教程开发工具【免费下载链接】mac-setupInstalling Development environment on macOS项目地址https://gitcode.com/gh_mirrors/ma/mac-setup点击查看免费下载在 macOS 上搭建开发环境后Docker 通常是运行数据库、缓存服务或隔离测试环境的首选工具。本文基于 mac-setup 开源仓库的 docs/docker/useful-commands.md 整理而成系统讲解docker build、docker run、docker exec、docker logs等核心命令的语法、常用参数及其在开发流程中的典型应用场景。读完本文你将掌握镜像构建、容器启停与调试、日志追踪、磁盘清理等日常高频操作的完整命令写法并能结合仓库中 docs/docker/tips-and-tricks.md 的实战技巧快速排查容器问题。命令总览在 mac-setup 仓库的 Docker 文档章节中常用命令文档docs/docker/useful-commands.md按命令逐一拆解涵盖以下 8 个核心命令每个命令都配有基础语法、示例与常用参数命令作用docker build根据 Dockerfile 构建镜像docker exec在运行中的容器内执行命令docker images列出所有已下载/已创建的镜像docker inspect展示容器的全部详细信息docker logs获取容器日志docker ps查看容器运行状态docker rmi删除一个或多个镜像docker run创建并启动容器可执行单条命令也可启动常驻容器前置知识在 mac-setup 的 docs/docker/index.md 中推荐在 macOS 上通过 Homebrew 安装 Docker Desktopbrew install --cask docker安装并启动后可用docker --version与docker run hello-world验证环境就绪。以下所有命令均假设 Docker 已正常运行。docker build从 Dockerfile 构建镜像基础语法docker build [DOCKERFILE PATH]docker build依据指定路径下的 Dockerfile 构建镜像。路径参数既可以是本地目录也可以是 URL 或 Git 仓库地址。示例构建一个标记为my-org:my-image的镜像其中 Dockerfile 位于/tmp/Dockerfiledocker build -t my-org:my-image -f /tmp/Dockerfile注意原文档示例中标签写作my-org:my-image这里沿用其写法。更规范的name:tag命名习惯是使用类似my-org/my-image:v1.0的仓库名 标签格式即使用/分隔组织名与镜像名:后跟标签构建完成后可随时用docker tag补充或修改标签。常用参数参数说明--file/-f指定 Dockerfile 所在路径默认在构建上下文的根目录查找名为Dockerfile的文件--force-rm始终删除中间容器即使构建失败也会清理--no-cache构建时不使用缓存常用于确保从基础镜像拉取到应用依赖都是全新状态--rm构建成功后移除中间容器该行为默认开启值为true--tag/-t为镜像指定名称及可选的标签格式为name:tag参数含义说明缓存机制Docker 在构建时会缓存每一层layer。当 Dockerfile 中某条指令及其上下文没有变化时会直接复用之前的层缓存大幅加快二次构建速度。但若依赖了外部源如 apt 源、pip/npm 仓库且希望强制获取最新版本就需要--no-cache。中间容器--rm默认开启与--force-rm的区别在于前者仅在构建成功后清理后者连构建失败产生的中间容器也一并删除适合 CI 环境或磁盘空间紧张时使用。docker exec在运行中的容器内执行命令基础语法docker exec [CONTAINER ID]docker exec只能在正在运行的容器中执行命令已停止的容器会报错。容器既可以通过容器 ID 指定也可以使用容器的名字--name指定的名称来引用。示例在容器内创建一个文件来验证容器可以正常读写其文件系统docker exec [CONTAINER ID] touch /tmp/exec_works实际使用时应将[CONTAINER ID]替换为docker ps输出的真实 ID或容器名例如docker exec 2f4a3b9c8d1e touch /tmp/exec_works如果命令执行成功且没有任何输出说明容器内/tmp目录可写容器文件系统状态正常。常用参数参数说明--detach/-d分离模式命令在后台运行不会阻塞当前终端-it组合参数-t创建伪终端pseudo-TTY-i保持 STDIN 打开二者配合可让容器启动后不会立即退出从而支持交互式操作典型场景docker exec -it [CONTAINER ID] /bin/bash或/bin/sh可进入运行中容器的交互式 Shell用于排查进程状态、查看配置或调试服务这是日常开发中排查线上/本地容器问题最常用的命令之一。若容器镜像中未内置 bash可使用/bin/sh。docker images列出本机镜像基础语法docker images列出所有已下载pull或本地构建build的镜像输出包含仓库名REPOSITORY、标签TAG、镜像 ID、创建时间与体积等信息。常用参数参数说明-q只显示镜像的数字 ID便于与其他命令组合使用如管道传给docker rmi组合用法docker images -q的输出可直接作为docker rmi的输入配合 docs/docker/tips-and-tricks.md 中的清理技巧批量删除不再需要的镜像。docker inspect查看容器的全部详细信息基础语法docker inspect [CONTAINER ID]docker inspect以 JSON 格式输出容器或镜像的全部底层信息包括网络配置、端口映射、挂载卷、环境变量、镜像层级、Entrypoint 与 CMD 等。当docker ps无法回答这个容器究竟怎么配的时docker inspect是最直接的排查工具。实用技巧来自 docs/docker/tips-and-tricks.md快速获取运行中容器的 IP 地址docker inspect [CONTAINER ID] | grep -wm1 IPAddress | cut -d -f 4该命令通过grep -wm1匹配第一处出现的IPAddress再用cut取出引号内的 IP 值。当需要从宿主机直连容器内的服务如数据库、Redis做联调时非常实用。更稳健的替代写法是结合--format模板docker inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} [CONTAINER ID]docker logs查看容器日志基础语法docker logs [CONTAINER ID]获取指定容器的标准输出STDOUT与标准错误STDERR日志。注意docker logs只能查看当前存在的容器日志容器被docker rm删除后日志随之消失若应用需要持久化日志应配合文件卷挂载或外部日志采集方案。常用参数参数说明--details显示额外细节信息--follow/-f跟随流式输出日志到达文件末尾后不停止持续等待新写入的数据追加进来等价于tail -f的效果--timestamps/-t在每行日志前显示时间戳典型场景启动一个容器后想观察其启动过程可以docker run --name my-app -d my-org/my-image docker logs -f -t my-app-f实时跟随日志输出-t输出时间戳便于定位启动耗时与异常发生时间点排查完可用CtrlC退出跟随状态容器不受影响。docker ps查看容器状态基础语法docker ps显示所有正在运行的容器信息包括容器 ID、镜像、创建命令、创建时间、状态、端口映射与容器名。docker ps也是获取容器 ID/名称的最常用途径是后续执行docker exec、docker logs、docker inspect等命令的前提。常用参数参数说明--all/-a显示所有容器默认只显示正在运行的容器已退出Exited的容器也一并列出--filter/-f基于条件过滤输出例如docker ps -f nameexample只显示名称匹配example的容器--quiet/-q只显示数字 ID便于与其他命令组合如批量删除或批量 kill组合用法来自 docs/docker/tips-and-tricks.md查看包括已退出容器在内的全部容器docker ps -a批量获取所有容器 ID 并交给其他命令docker ps -qdocker rmi删除镜像基础语法docker rmi [IMAGE ID]删除一个或多个本地镜像可通过镜像 ID、仓库名如my-org/my-image:latest指定。注意如果某个镜像仍有容器在引用包括已停止的容器删除会失败需要先删除相关容器或使用--force。常用参数参数说明--force/-f强制删除镜像即使有容器依赖它注意docker rmi与docker rm的区别docker rmi删除的是镜像Image而docker rm删除的是容器Container。在 docs/docker/tips-and-tricks.md 中清理容器使用docker container prune或docker rm $(docker ps -a -q)清理无用镜像则使用docker image prune或docker rmi $(docker images | grep ^none | awk {print $3})。docker run创建并启动容器基础语法与示例docker run将创建容器与启动容器合并为一步操作既能执行单条命令也能启动长期运行的常驻容器。docker run -it ubuntu:latest /bin/bash以上命令会以/bin/bash作为入口命令启动一个ubuntu容器。需要注意如果本地没有ubuntu镜像Docker 会在运行前自动从仓库拉取pull该镜像配合-it参数后容器不会立即退出而是进入可交互的 bash Shell输入exit后容器退出。常用参数参数说明-it创建伪终端-t并保持 STDIN 打开-i使容器不立即退出且支持交互输入--rm容器退出时自动删除该容器否则容器会被保留并可通过docker ps -a看到--detach/-d后台运行容器并打印容器 ID--volume/-v绑定挂载卷用于把本地磁盘目录如配置文件、需要持久化的数据数据库、日志等映射进容器-v挂载卷的典型场景docker run -d \ -v /Users/me/config:/app/config \ -v /Users/me/data:/var/lib/mysql \ --name my-db mysql:8左侧为宿主机路径右侧为容器内路径挂载目录适合存放配置修改配置无需重建镜像以及持久化数据数据库、日志等容器删除重建后数据仍保留macOS 用户注意Docker Desktop 默认通过虚拟机运行容器挂载目录通常需要位于 Docker Desktop 已授权的文件共享路径下否则可能访问失败。组合示例一次性任务docker run --rm -v $(pwd):/work -w /work python:3.12 python script.py--rm保证命令结束后容器自动清理-v将当前目录挂载为/work-w设置工作目录适合跑一次性批处理任务而不污染本地环境。实战组合日常容器排障流程将上述命令串联起来即可形成一套标准的容器排查流程# 1. 查看所有容器含已退出及其状态 docker ps -a # 2. 查看某个容器的实时日志与时间戳 docker logs -f -t [CONTAINER ID] # 3. 进入运行中容器的交互式 Shell docker exec -it [CONTAINER ID] /bin/bash # 4. 查看容器网络 IP、挂载卷等底层配置 docker inspect [CONTAINER ID]延伸阅读mac-setup Docker 文档安装 Docker Desktopbrew install --cask docker、验证环境docker --version与docker run hello-world可参考 docs/docker/index.md日常清理与效率技巧批量删除所有容器、清理无标签镜像、查看 Docker 占用空间docker system df、批量停止容器等命令见 docs/docker/tips-and-tricks.mdCask 安装其他开发工具Docker 还可以与 Brave、GitHub、Conductor 等开发者工具一起通过brew install --cask安装见 docs/homebrew/cask.md。提示以上命令与参数说明均以本仓库文档docs/docker/useful-commands.md为准。Docker 命令在不同版本间参数基本兼容但个别行为如默认存储驱动、日志驱动可能随 Docker Engine / Docker Desktop 版本变化遇到异常时建议查阅当前安装版本的官方命令参考docker command --help可随时查看本地参数说明。赞分享文档教程开发工具【免费下载链接】mac-setupInstalling Development environment on macOS项目地址https://gitcode.com/gh_mirrors/ma/mac-setup点击查看免费下载相关推荐Higgsfield CLI命令完整参考init、setup-nodes、build-experiments与run实战速查Higgsfield CLI命令完整参考init、setup nodes、build experiments与run实战速查 Higgsfield CLI 是人工智能大模型深度学习分布式训练预训练强化学习Earthfile语法详解FROM、RUN、BUILD等15个核心命令逐一拆解附速查清单Earthfile语法详解FROM、RUN、BUILD等15个核心命令逐一拆解附速查清单 Earthly 是一款超级简单的构建框架口号是像 DockeCI/CDDevOps构建工具Delve 的 dlv run 命令解析已弃用命令的完整说明与 debug 迁移指南Delve 的 dlv run 命令解析已弃用命令的完整说明与 debug 迁移指南 本文基于 Delve 官方 CLI 使用文档《 dlv run http开发工具上一篇3步掌握bitcoinj钱包备份恢复助记词与种子恢复的终极指南下一篇免费小米表盘制作器Mi-Create为小米手表与手环定制专属表盘的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表