Docker 命令
Docker 常用命令速查,容器/镜像/网络/卷管理,一键复制
共 59 个脚本
运行交互式容器
运行一个 Ubuntu 容器并进入交互式终端。--rm 表示退出后自动删除容器,-i 保持标准输入开启,-t 分配伪终端。
后台运行容器
以后台模式运行一个 Nginx 容器,-d 后台运行,-p 把宿主机 8080 映射到容器 80 端口,--name 给容器命名便于引用。
运行带数据卷和环境变量的容器
运行容器并挂载宿主机目录、设置环境变量、限制重启策略。-v 挂载卷,-e 设置环境变量,--restart=unless-stopped 异常退出自动重启。
列出容器
docker ps 默认只列出运行中的容器。-a 列出所有(包括已停止),-q 仅输出容器 ID 方便脚本拼接。
启动 / 停止 / 重启容器
对已存在的容器执行启动、停止、重启。可以用容器名或容器 ID。
删除容器
删除已停止的容器。-f 强制删除运行中的容器(会先停止再删除)。组合命令可批量删除所有已停止容器。
批量删除所有已停止容器
一次性删除所有处于退出状态的容器。docker ps -aq -f status=exited 列出所有已停止容器 ID。
进入运行中的容器
在正在运行的容器中执行命令。最常用于进入容器排查问题:进入 my-nginx 容器并打开 bash。
查看容器日志
查看容器输出日志。-f 实时跟踪(类似 tail -f),--tail 100 只看最后 100 行,--since 30m 只看最近 30 分钟。
查看容器内进程
查看指定容器内正在运行的进程列表,类似在宿主机上执行 top/ps。
实时监控容器资源占用
实时显示所有运行容器的 CPU、内存、网络、磁盘 IO 占用,类似 Linux 的 top 命令。
查看容器详细信息
以 JSON 格式输出容器的完整配置(网络、挂载、环境变量、启动命令等)。常配合 grep/jq 提取需要的信息。
容器与宿主机之间拷贝文件
docker cp 可在容器和宿主机之间双向拷贝文件,无需进入容器。
重命名容器
给已存在的容器改名,不影响容器运行状态。
查看容器端口映射
查看容器对外暴露的端口及宿主机映射关系。
附加到容器主进程
连接到容器的主进程(PID 1)的标准输入输出。注意:Ctrl+C 会同时终止容器。如需安全退出用 Ctrl+P, Ctrl+Q。
把容器提交为新镜像
将容器的当前状态保存为新的镜像。适合临时保存调试结果,正式生产请用 Dockerfile。
列出本地镜像
列出本地所有镜像。-a 包含中间层镜像,--digests 显示镜像摘要。
拉取远程镜像
从 Docker Hub 拉取镜像。可指定 tag(版本),不指定默认 latest。
推送镜像到仓库
把本地镜像推送到镜像仓库(Docker Hub 或私有仓库)。推送前需先登录并用正确的 tag 命名。
构建镜像
根据 Dockerfile 构建镜像。-t 指定名称和 tag,末尾的 . 表示构建上下文为当前目录。
构建时传入构建参数
通过 --build-arg 向 Dockerfile 中的 ARG 传值,用于多环境构建。
给镜像打标签
为一个已有镜像创建新的引用(同一份镜像,多个名字)。常用于给镜像打版本号或仓库前缀。
删除镜像
删除本地镜像。被容器引用的镜像无法直接删除,需先删除相关容器。-f 可强制删除。
查看镜像构建历史
查看镜像每一层的构建指令和大小,便于优化 Dockerfile、定位镜像为何这么大。
导出 / 导入镜像为文件
save 把镜像打包成 tar 文件,load 从 tar 文件恢复镜像。适合内网无仓库环境传递镜像。
搜索 Docker Hub 镜像
在 Docker Hub 搜索公共镜像。--limit 限制返回数量,--filter stars=N 过滤星标数。
列出所有网络
查看 Docker 中所有网络。默认存在 bridge、host、none 三个内置网络。
创建自定义网络
创建一个自定义桥接网络。同一自定义网络中的容器可通过容器名互相解析访问。
删除网络
删除未使用的网络。被容器引用的网络无法删除。
查看网络详情
查看网络的配置和接入该网络的所有容器(含 IP、MAC)。
把容器加入网络
connect 将运行中的容器接入另一个网络,disconnect 从网络断开。一个容器可同时接入多个网络。
列出所有数据卷
查看 Docker 中所有命名数据卷。匿名卷也会列出。
创建命名数据卷
创建一个命名卷用于持久化容器数据,Docker 会管理其存储位置。
删除数据卷
删除未被容器引用的数据卷。注意:删除卷会永久丢失其中数据。
查看数据卷详情
查看数据卷的元信息,最关键的是 Mountpoint(在宿主机上的实际路径)。
清理未使用的数据卷
一次性删除所有未被任何容器引用的数据卷,释放磁盘空间。会永久删除其中的数据。
Node 应用 Dockerfile 基础模板
一个典型的 Node.js 应用 Dockerfile,使用 alpine 基础镜像,安装依赖、拷贝源码、暴露端口、启动应用。
多阶段构建(减小镜像体积)
多阶段构建:第一阶段编译产物,第二阶段只拷贝产物到精简运行镜像,大幅减小最终镜像体积。常用于 Go / 前端打包。
ENTRYPOINT 与 CMD 配合
ENTRYPOINT 固定主程序,CMD 提供可被覆盖的默认参数。这样运行时既能直接启动,也能追加自定义参数。
配置容器健康检查
HEALTHCHECK 让 Docker 周期性检查容器健康状态。--interval 检查间隔,--timeout 超时,--retries 连续失败次数后标记 unhealthy。
.dockerignore 减小构建上下文
在项目根目录创建 .dockerignore,避免把 node_modules、日志、.git 等无关文件发送给 Docker daemon,加速构建、避免缓存失效。
以非 root 用户运行(安全)
默认容器以 root 运行存在安全隐患。创建专用用户并以该用户运行应用,是生产镜像的安全最佳实践。
启动 Compose 服务
根据 docker-compose.yml 启动所有服务。-d 后台运行,--build 强制重新构建镜像。
停止并删除 Compose 服务
停止并删除容器、网络。默认不删数据卷;-v 一并删除数据卷(谨慎),--rmi all 同时删除镜像。
查看 Compose 服务日志
查看所有或指定服务的日志。-f 实时跟踪,--tail 限制行数。
在 Compose 服务中执行命令
在指定的 compose 服务容器中执行命令,等价于 docker exec,但用服务名而非容器名。
查看 Compose 服务状态
列出当前 compose 项目下所有服务容器的运行状态、端口映射。
构建 Compose 服务镜像
只构建镜像不启动容器。--no-cache 禁用缓存强制重新构建每一层。
docker-compose.yml 典型示例
一个典型的 web + db 双服务 compose 文件:web 服务依赖 db,db 用命名卷持久化数据。
重启指定 Compose 服务
只重启某个服务而不影响其他服务,常用于热更新配置后生效。
运行一次性任务
针对某个服务启动一个临时容器运行命令,运行完即退出。--rm 退出后自动删除。常用于迁移、测试、初始化。
查看 Docker 磁盘占用
查看镜像、容器、数据卷、日志各自占用的磁盘空间,定位磁盘满的原因。-v 显示详细信息。
一键清理无用资源
清理所有已停止容器、无用网络、悬空镜像(dangling)、构建缓存。-a 连带删除未被引用的镜像,--volumes 连带删除未使用的卷。
清理悬空镜像
删除没有 tag 的悬空镜像(dangling,通常是重新构建后的旧层)。-a 删除所有未被容器使用的镜像。
清理所有已停止容器
一次性删除所有处于退出状态的容器,不会影响运行中的容器。
清理构建缓存
清理 BuildKit 构建缓存。长时间构建会产生大量缓存,定期清理可释放可观空间。
实时监听 Docker 事件
实时输出 Docker daemon 产生的所有事件(容器启动/停止、镜像拉取等),便于排查自动化问题。
查看 Docker 版本与信息
version 显示客户端/服务端版本,info 显示完整的 Docker daemon 配置和运行环境信息。