Docker 常用命令速查表
Docker 日常使用中最常见的命令汇总,覆盖从镜像管理、容器操作到网络配置和系统清理的完整工作流。每个命令附带实际示例,可直接复制使用。
基础信息命令
查看 Docker 安装版本和系统级信息。
# 查看 Docker 版本信息
docker --version
docker version
# 查看 Docker 系统信息
docker info
# 查看 Docker 帮助
docker --help
docker <command> --help镜像(Image)管理
镜像查看和搜索
# 列出本地所有镜像
docker images
docker image ls
# 搜索 Docker Hub 上的镜像
docker search <镜像名>
docker search nginx
# 查看镜像详细信息
docker inspect <镜像ID或名称>镜像下载和删除
# 拉取镜像(默认 latest 标签)
docker pull <镜像名>
docker pull nginx
docker pull nginx:1.21
# 删除镜像
docker rmi <镜像ID或名称>
docker rmi nginx:latest
# 强制删除镜像
docker rmi -f <镜像ID>
# 删除所有未使用的镜像
docker image prune
docker image prune -a # 删除所有未使用镜像(包括标签镜像)镜像构建
# 从 Dockerfile 构建镜像
docker build -t <镜像名:标签> <路径>
docker build -t myapp:1.0 .
# 从 Dockerfile 构建并指定文件名
docker build -f <Dockerfile路径> -t <镜像名> .
# 查看镜像构建历史
docker history <镜像名>容器(Container)管理
容器运行
# 运行容器(前台运行)
docker run <镜像名>
docker run nginx
# 后台运行容器
docker run -d <镜像名>
# 交互式运行容器
docker run -it <镜像名> /bin/bash
docker run -it ubuntu:20.04 /bin/bash
# 运行容器并指定名称
docker run --name <容器名> <镜像名>
docker run --name my-nginx -d nginx
# 端口映射运行
docker run -p <主机端口>:<容器端口> <镜像名>
docker run -p 8080:80 -d nginx
# 挂载数据卷运行
docker run -v <主机路径>:<容器路径> <镜像名>
docker run -v /home/data:/var/data -d nginx
# 设置环境变量
docker run -e <变量名>=<值> <镜像名>
docker run -e MYSQL_ROOT_PASSWORD=123456 -d mysql
# 综合示例
docker run -d --name web-server -p 8080:80 -v /local/html:/usr/share/nginx/html nginx容器查看和管理
# 列出正在运行的容器
docker ps
# 列出所有容器(包括停止的)
docker ps -a
# 查看容器详细信息
docker inspect <容器ID或名称>
# 查看容器日志
docker logs <容器ID或名称>
docker logs -f <容器ID> # 实时查看日志
docker logs --tail 100 <容器ID> # 查看最后100行日志
# 查看容器资源使用情况
docker stats
docker stats <容器ID或名称>容器操作
# 启动已停止的容器
docker start <容器ID或名称>
# 停止运行中的容器
docker stop <容器ID或名称>
# 重启容器
docker restart <容器ID或名称>
# 暂停容器
docker pause <容器ID或名称>
# 恢复暂停的容器
docker unpause <容器ID或名称>
# 删除容器
docker rm <容器ID或名称>
# 强制删除运行中的容器
docker rm -f <容器ID或名称>
# 删除所有已停止的容器
docker container prune容器交互
# 进入运行中的容器
docker exec -it <容器ID或名称> /bin/bash
docker exec -it <容器ID或名称> /bin/sh
# 在容器中执行命令
docker exec <容器ID或名称> <命令>
docker exec my-nginx ls /etc/nginx
# 从容器复制文件到主机
docker cp <容器ID>:<容器路径> <主机路径>
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
# 从主机复制文件到容器
docker cp <主机路径> <容器ID>:<容器路径>
docker cp ./index.html my-nginx:/usr/share/nginx/html/网络管理
# 列出网络
docker network ls
# 创建网络
docker network create <网络名>
docker network create --driver bridge my-network
# 查看网络详细信息
docker network inspect <网络名>
# 连接容器到网络
docker network connect <网络名> <容器名>
# 断开容器与网络的连接
docker network disconnect <网络名> <容器名>
# 删除网络
docker network rm <网络名>
# 删除未使用的网络
docker network prune数据卷管理
# 列出数据卷
docker volume ls
# 创建数据卷
docker volume create <卷名>
# 查看数据卷详细信息
docker volume inspect <卷名>
# 删除数据卷
docker volume rm <卷名>
# 删除未使用的数据卷
docker volume prune
# 使用数据卷运行容器
docker run -v <卷名>:<容器路径> <镜像名>
docker run -v mydata:/var/data -d nginxDocker Compose 常用命令
# 启动服务(后台运行)
docker-compose up -d
# 启动服务(前台运行)
docker-compose up
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 查看服务状态
docker-compose ps
# 查看服务日志
docker-compose logs
docker-compose logs -f <服务名>
# 构建服务
docker-compose build
# 拉取服务镜像
docker-compose pull
# 执行一次性命令
docker-compose run <服务名> <命令>系统清理命令
# 删除所有停止的容器
docker container prune
# 删除所有未使用的镜像
docker image prune
docker image prune -a # 包括标签镜像
# 删除所有未使用的网络
docker network prune
# 删除所有未使用的数据卷
docker volume prune
# 删除所有未使用的对象(容器、网络、镜像、构建缓存)
docker system prune
docker system prune -a # 更彻底的清理
# 查看 Docker 磁盘使用情况
docker system df镜像导入导出
# 将镜像保存为 tar 文件
docker save -o <文件名.tar> <镜像名>
docker save -o nginx.tar nginx:latest
# 从 tar 文件加载镜像
docker load -i <文件名.tar>
docker load -i nginx.tar
# 将容器导出为 tar 文件
docker export -o <文件名.tar> <容器ID或名称>
# 从 tar 文件导入为镜像
docker import <文件名.tar> <镜像名:标签>实用技巧
常用组合命令
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 删除所有容器
docker rm $(docker ps -aq)
# 删除所有镜像
docker rmi $(docker images -q)
# 进入最新创建的容器
docker exec -it $(docker ps -l -q) /bin/bashDockerfile 基础指令
# 指定基础镜像
FROM ubuntu:20.04
# 设置维护者信息
LABEL maintainer="your-email@example.com"
# 设置工作目录
WORKDIR /app
# 复制文件
COPY . /app
# 安装软件包
RUN apt-get update && apt-get install -y python3
# 设置环境变量
ENV APP_ENV=production
# 暴露端口
EXPOSE 8080
# 设置启动命令
CMD ["python3", "app.py"]容器健康检查
# 运行容器时设置健康检查
docker run -d --name web-app \
--health-cmd="curl -f http://localhost/ || exit 1" \
--health-interval=30s \
--health-timeout=3s \
--health-retries=3 \
nginx
# 查看容器健康状态
docker ps # STATUS列会显示健康状态常用镜像启动示例
# Nginx
docker run -d --name nginx-server -p 80:80 nginx
# MySQL
docker run -d --name mysql-db -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
# Redis
docker run -d --name redis-server -p 6379:6379 redis
# PostgreSQL
docker run -d --name postgres-db -p 5432:5432 \
-e POSTGRES_PASSWORD=123456 postgres
# Node.js 应用
docker run -d --name node-app -p 3000:3000 \
-v $(pwd):/app -w /app node:16 npm start
# Python 应用
docker run -d --name python-app -p 5000:5000 \
-v $(pwd):/app -w /app python:3.9 python app.py💡 提示:
- 使用
docker --help或docker <command> --help查看详细帮助 - 容器 ID 可以使用前几位字符代替完整 ID
- 定期清理未使用的镜像和容器以节省磁盘空间
- 生产环境建议使用具体版本标签而不是
latest