Docker 常用指令速查
以下是 Docker 日常开发 & 运维中用得最多的核心指令清单(含解释)。具体选项详见官方文档。
📦 镜像(Image)操作
查看镜像
# 列出本地所有镜像
docker images
docker image ls
# 查看镜像详细信息
docker inspect <镜像名:标签>拉取镜像
# 从仓库拉取镜像(默认 latest 标签)
docker pull nginx
# 拉取指定标签
docker pull nginx:1.21
docker pull nginx:alpine构建镜像
# 从当前目录的 Dockerfile 构建镜像
docker build -t myapp:latest .
# 指定 Dockerfile 路径
docker build -f Dockerfile.prod -t myapp:prod .
# 构建时不使用缓存
docker build --no-cache -t myapp:latest .删除镜像
# 删除指定镜像
docker rmi nginx:latest
docker image rm nginx:latest
# 删除未使用的镜像(清理)
docker image prune
# 强制删除(即使有容器在使用)
docker rmi -f nginx:latest镜像标签
# 给镜像打标签
docker tag nginx:latest myregistry/nginx:v1.0导出/导入镜像
# 导出镜像为 tar 文件
docker save -o nginx.tar nginx:latest
# 从 tar 文件导入镜像
docker load -i nginx.tar🚀 容器(Container)操作
运行容器
# 运行容器(前台)
docker run nginx:latest
# 后台运行(-d)
docker run -d nginx:latest
# 指定容器名称(--name)
docker run -d --name my-nginx nginx:latest
# 端口映射(-p 主机端口:容器端口)
docker run -d -p 8080:80 nginx:latest
# 挂载数据卷(-v)
docker run -d -v /host/path:/container/path nginx:latest
# 设置环境变量(-e)
docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
# 交互式运行(-it)
docker run -it ubuntu:latest /bin/bash
# 自动删除容器(--rm,停止后自动删除)
docker run --rm nginx:latest查看容器
# 查看运行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 查看容器详细信息
docker inspect <容器名/ID>
# 查看容器日志
docker logs <容器名/ID>
# 实时查看日志(-f)
docker logs -f <容器名/ID>
# 查看最近 N 条日志
docker logs --tail 100 <容器名/ID>容器启停
# 启动已停止的容器
docker start <容器名/ID>
# 停止运行中的容器
docker stop <容器名/ID>
# 重启容器
docker restart <容器名/ID>
# 强制停止(kill)
docker kill <容器名/ID>
# 暂停容器(暂停进程)
docker pause <容器名/ID>
# 恢复暂停的容器
docker unpause <容器名/ID>进入容器
# 进入运行中的容器(推荐)
docker exec -it <容器名/ID> /bin/bash
docker exec -it <容器名/ID> /bin/sh
# 在容器中执行命令
docker exec <容器名/ID> ls /app删除容器
# 删除已停止的容器
docker rm <容器名/ID>
# 强制删除运行中的容器(-f)
docker rm -f <容器名/ID>
# 删除所有已停止的容器
docker container prune
# 删除所有容器(危险操作)
docker rm -f $(docker ps -aq)容器与主机文件复制
# 从容器复制文件到主机
docker cp <容器名/ID>:/path/to/file /host/path
# 从主机复制文件到容器
docker cp /host/path <容器名/ID>:/path/to/file🌐 网络(Network)操作
查看网络
# 列出所有网络
docker network ls
# 查看网络详细信息
docker network inspect bridge创建网络
# 创建自定义网络
docker network create mynetwork
# 创建桥接网络
docker network create --driver bridge mybridge连接容器到网络
# 运行容器时连接到网络
docker run -d --network mynetwork nginx:latest
# 将运行中的容器连接到网络
docker network connect mynetwork <容器名/ID>
# 断开容器与网络的连接
docker network disconnect mynetwork <容器名/ID>删除网络
# 删除网络
docker network rm mynetwork
# 删除未使用的网络
docker network prune💾 数据卷(Volume)操作
查看数据卷
# 列出所有数据卷
docker volume ls
# 查看数据卷详细信息
docker volume inspect <卷名>创建数据卷
# 创建数据卷
docker volume create myvolume使用数据卷
# 运行容器时挂载数据卷
docker run -d -v myvolume:/data nginx:latest
# 挂载主机目录(bind mount)
docker run -d -v /host/path:/container/path nginx:latest
# 只读挂载
docker run -d -v myvolume:/data:ro nginx:latest删除数据卷
# 删除数据卷
docker volume rm <卷名>
# 删除未使用的数据卷(谨慎使用)
docker volume prune🐳 Docker Compose 操作
启动服务
# 启动所有服务(后台)
docker-compose up -d
# 启动并构建镜像
docker-compose up -d --build
# 启动指定服务
docker-compose up -d nginx查看服务
# 查看运行中的服务
docker-compose ps
# 查看服务日志
docker-compose logs
# 实时查看日志
docker-compose logs -f
# 查看指定服务日志
docker-compose logs -f nginx停止服务
# 停止所有服务
docker-compose stop
# 停止并删除容器
docker-compose down
# 停止并删除容器、网络、数据卷
docker-compose down -v其他操作
# 重启服务
docker-compose restart
# 执行命令
docker-compose exec nginx /bin/bash
# 查看服务状态
docker-compose ps🔍 系统信息与维护
系统信息
# 查看 Docker 版本
docker version
# 查看 Docker 系统信息
docker info
# 查看磁盘使用情况
docker system df清理操作
# 清理所有未使用的资源(镜像、容器、网络、数据卷)
docker system prune
# 清理所有未使用的资源(包括未使用的镜像)
docker system prune -a
# 清理所有未使用的资源(包括数据卷)
docker system prune -a --volumes资源监控
# 查看容器资源使用情况
docker stats
# 查看指定容器资源使用
docker stats <容器名/ID>
# 实时监控(默认已开启)
docker stats --no-stream🔧 实用技巧
批量操作
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 删除所有已停止的容器
docker rm $(docker ps -aq)
# 删除所有未使用的镜像
docker image prune -a查看容器进程
# 查看容器内进程
docker top <容器名/ID>查看容器端口映射
# 查看容器端口映射
docker port <容器名/ID>导出/导入容器
# 导出容器为 tar 文件
docker export -o container.tar <容器名/ID>
# 从 tar 文件导入为镜像
docker import container.tar myimage:latest📝 常用参数说明
| 参数 | 说明 |
|---|---|
-d | 后台运行(detached mode) |
-it | 交互式终端(interactive + TTY) |
-p | 端口映射(host:container) |
-v | 数据卷挂载(volume) |
-e | 环境变量(environment) |
--name | 指定容器名称 |
--rm | 容器停止后自动删除 |
-f | 强制操作(force) |
-a | 所有(all) |
-q | 只显示 ID(quiet) |
🎯 常用场景命令组合
场景 1:快速启动一个 Web 服务
docker run -d --name my-nginx -p 8080:80 nginx:latest场景 2:开发环境挂载代码目录
docker run -d --name dev-app \
-p 3000:3000 \
-v $(pwd):/app \
node:16-alpine场景 3:查看容器日志并过滤
docker logs -f <容器名> | grep ERROR场景 4:进入容器调试
docker exec -it <容器名> /bin/bash场景 5:清理所有资源
docker system prune -a --volumes💡 提示:更多详细选项请使用
docker <command> --help查看帮助文档。