news 2026/5/30 15:44:11

Docker命令合集详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker命令合集详解

总结的相对全面且详细的DockerDocker Compose命令合集。为了方便查阅,我将其分为基础/镜像管理容器操作Docker Compose 编排以及常用参数详解四个部分。


第一部分:Docker 基础与镜像命令 (Images)

镜像(Image)是容器的静态模板(类似于软件安装包)。

命令简写/变体作用详解
docker search <关键词>-搜索镜像在 Docker Hub 上搜索公共镜像。
docker pull <镜像名>:<标签>-拉取镜像下载镜像。如果不写标签,默认下载:latest.
docker imagesdocker image ls查看镜像列出本地所有下载的镜像。
docker rmi <镜像ID或名称>docker image rm删除镜像删除本地镜像。如果镜像正在被容器使用,需先删除容器。
docker build -t <名称> .-构建镜像根据当前目录下的Dockerfile构建新镜像。
docker tag <源ID> <新名>-标记镜像给镜像打标签(通常用于上传到私有仓库前)。
docker save -o <包名.tar> <镜像>-导出镜像将镜像保存为 tar 文件(用于离线迁移)。
docker load -i <包名.tar>-导入镜像从 tar 文件加载镜像。
docker container prune-清理容器删除所有已停止的容器。
docker image prune-清理镜像删除所有悬空镜像。
docker image prune -a-清理镜像如果要删除所有未使用的镜像(不管是否悬空)。
docker network prune-清理网络删除所有未使用的网络。
docker volume prune-清理卷删除所有未使用的卷
docker system prune-清理系统慎用。一键清理未使用的镜像、悬空镜像和停止的容器。

第二部分:Docker 容器操作命令 (Containers)

容器(Container)是镜像运行时的实体(类似于运行中的软件进程)。

  1. 生命周期管理
命令作用详解
docker run [参数] <镜像>创建并启动最核心命令(详见下方参数详解)。
docker start <容器ID>启动启动一个已经停止的容器。
docker stop <容器ID>停止优雅停止容器(发送 SIGTERM 信号)。
docker restart <容器ID>重启重启容器。
docker kill <容器ID>强制停止强制杀掉容器进程(发送 SIGKILL 信号)。
docker rm <容器ID>删除容器删除已停止的容器。加-f可强制删除运行中的容器。
  1. 查看与交互
命令作用详解
docker ps查看运行中容器仅列出正在运行的。
docker ps -a查看所有容器列出所有容器(包括已停止的)。
docker logs <容器ID>查看日志查看容器的标准输出日志。常用-f实时跟踪。
docker exec -it <容器ID> /bin/bash进入容器在运行的容器中开启一个交互终端。(sh或bash)
docker inspect <容器ID>查看详情查看容器的 IP、挂载、环境变量等详细 JSON 信息。
docker stats资源监控实时查看容器的 CPU、内存、网络 IO 使用情况。
docker cp <本地路径> <容器ID>:<路径>文件拷贝在宿主机和容器之间复制文件。
docker network ls查看网络查看容器网络ID、类型、名称等信息。
docker volume create <卷名称>创建卷创建容器卷。
docker run -v <卷名称>:/app/data nginx挂载卷将指定卷挂载到容器中。

第三部分:Docker Compose 命令

Docker Compose 用于管理多容器应用。注意:新版 Docker 已集成 Compose,命令由docker-compose变为docker compose(中间是空格),但老写法依然兼容。

命令作用详解
docker-compose up -d启动服务后台启动所有服务。如果镜像不存在会自动构建或拉取。
docker-compose up -d <服务名>启动指定服务后台启动指定服务。如果镜像不存在会自动构建或拉取。
docker-compose down停止并清理停止容器并删除容器、网络。
docker-compose down -v彻底清理在 down 的基础上,同时删除数据卷(Volumes)(慎用)。
docker-compose stop停止停止容器但不删除。
docker-compose start/stop启停仅启动或停止服务,不删除容器。
docker-compose restart重启重启服务。
docker-compose up -d --force-recreate重建强制重新创建容器
docker-compose ps查看状态查看当前 docker-compose.yml 管理的容器状态。
docker-compose logs -f查看日志实时查看所有服务的日志聚合。
docker-compose logs -f <服务名>指定日志仅查看某一个服务的日志。推荐使用–tail参数只获取最新日志
docker-compose build构建重新构建镜像(不启动)。
docker-compose pull拉取拉取 docker-compose.yml 中定义的镜像。
docker-compose pull <服务名>拉取拉取 docker-compose.yml 中指定服务名镜像。
docker-compose config检查配置验证 docker-compose.yml 文件格式是否正确。

第四部分:核心命令参数详解 (重点)

初学者最容易晕的是docker rundocker compose的各种参数,这里做深度解析。

1.docker run常用参数

语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  • -d(Detached):后台运行容器,并返回容器 ID。

    • 例:docker run -d nginx
  • -p(Port):端口映射。格式为宿主机端口:容器端口

    • 例:docker run -p 8080:80 nginx(访问宿主机的 8080 即访问容器的 80)。
  • -v(Volume):挂载数据卷。格式为宿主机路径:容器路径

    • 例:docker run -v /data/html:/usr/share/nginx/html nginx
  • --name:给容器起一个好记的名字(否则是随机名)。

    • 例:docker run --name my-web nginx
  • -e(Environment):设置环境变量。

    • 例:docker run -e MYSQL_ROOT_PASSWORD=123456 mysql
  • --restart:重启策略。

    • no: 默认,不重启。
    • always: 只要容器退出了就重启(开机自启常用)。
    • on-failure: 只有非正常退出(错误码非0)才重启。
  • --network:指定网络模式(如host,bridge或自定义网络)。

  • --rm:容器停止后自动删除容器文件(用于临时测试)。

2.docker logs常用参数
  • -f(Follow):实时跟踪日志输出(类似于 Linux 的tail -f)。

  • --tail <行数>:仅查看最后 N 行。

    • 例:docker logs -f --tail 100 my-web
3.docker exec常用参数
  • -i(Interactive):保持 STDIN 打开。
  • -t(TTY):分配一个伪终端。
  • 组合使用-it:几乎是搭配使用的,让我们像通过 SSH 一样进入容器。(部分容器可能没有入口)

第五部分:实战场景举例

场景 1:彻底清理 Docker 空间

当磁盘空间不足时,运行以下命令清理所有不再使用的资源:

# 清理停止的容器、未被使用的网络、悬空的镜像 docker system prune # 如果要连同未使用的数据卷一起清理(注意数据丢失风险) docker system prune --volumes
场景 2:更新 Docker Compose 服务

当你修改了docker-compose.yml或代码需要重新部署时:

# 1. 拉取最新镜像(如果使用的是远程镜像) docker compose pull # 2. 重新构建(如果使用的是本地 Dockerfile) docker compose build # 3. 重新启动(Docker 会智能识别变更,仅重启有变化的服务) docker compose up -d # 4. 删除旧的无用镜像 docker image prune -f
场景 3:调试容器

容器启动失败,如何排查?

# 1. 查看容器状态,看是否 Exited docker ps -a # 2. 查看日志报错 docker logs <容器ID> # 3. 如果容器还在运行但服务不正常,进入容器内部查看 docker exec -it <容器ID> /bin/sh # 检查配置文件或网络连接 ping baidu.com cat /etc/nginx/nginx.conf

总结速查表 (Cheat Sheet)

  • 启动:docker run -d -p 80:80 --name web nginx
  • 进入:docker exec -it web bash
  • 日志:docker logs -f web
  • 停止删:docker stop web && docker rm web
  • 编排起:docker compose up -d
  • 编排停:docker compose down
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 17:57:05

3分钟极速部署OpenMetadata元数据平台的完整指南

3分钟极速部署OpenMetadata元数据平台的完整指南 【免费下载链接】OpenMetadata 开放标准的元数据。一个发现、协作并确保数据正确的单一地点。 项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata 一键启动配置&#xff0c;快速搭建企业级数据治理平台。本…

作者头像 李华
网站建设 2026/5/30 15:44:10

11、深入探索Bash脚本:自动完成与环境定制

深入探索Bash脚本:自动完成与环境定制 1. 为自定义应用编写Bash自动完成功能 当使用 complete -r 命令时,如果没有指定 command_name 作为参数,所有的自动完成规范都会被移除: $ complete -r $ completeBash-completion包并不为外部工具提供自动完成功能。若要为有…

作者头像 李华
网站建设 2026/5/29 11:22:10

中文医学基准测试题库数据集:28万条标准化JSON格式医师考试题目与临床案例分析,覆盖28个医学专业领域,用于医学AI模型训练、临床决策支持系统开发、医学知识问答系统构建、医学教育辅助工具优化

中文医学基准测试题库数据集&#xff1a;28万条标准化JSON格式医师考试题目与临床案例分析&#xff0c;覆盖28个医学专业领域&#xff0c;用于医学AI模型训练、临床决策支持系统开发、医学知识问答系统构建、医学教育辅助工具优化 引言与背景 在人工智能技术快速发展的今天&a…

作者头像 李华
网站建设 2026/5/22 7:47:45

终极指南:m3u8下载器命令行工具,实现全自动视频批量采集

终极指南&#xff1a;m3u8下载器命令行工具&#xff0c;实现全自动视频批量采集 【免费下载链接】m3u8-downloader m3u8 视频在线提取工具 流媒体下载 m3u8下载 桌面客户端 windows mac 项目地址: https://gitcode.com/gh_mirrors/m3u8/m3u8-downloader 还在为重复下载m…

作者头像 李华
网站建设 2026/5/30 9:32:09

PowerShell install 一键部署Oracle26ai

Oracle26ai前言 Oracle Database 26i (正式名称为 Oracle AI Database 26ai )是 Oracle 基于 26ai 核心引擎推出的免费全功能入门级数据库,面向开发者、学习者与小型项目,支持本地 / 容器 / 云部署,核心能力与 26ai 对齐但有资源限制。 download Oracle oracle 26ai 需要…

作者头像 李华
网站建设 2026/5/30 15:20:56

Git撤销命令revert与reset区别

今天有同事问我Git的撤销命令revert与reset有什么区别&#xff1f;特意整理了一下&#xff0c;做个比较全面的对比。总体来说&#xff0c;git revert 和 git reset 都是用于撤销更改的 Git 命令&#xff0c;但它们的工作方式和用途都有显著区别。核心区别对比特性git revertgit…

作者头像 李华