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 查看帮助文档。