Docker 命令速查表
这是一份完整的 Docker 命令速查表,涵盖日常开发中最常用的命令。
镜像命令
查看和搜索
# 列出本地镜像docker imagesdocker image ls
# 搜索镜像docker search nginx
# 查看镜像详细信息docker inspect nginx
# 查看镜像历史docker history nginx
# 查看镜像构建历史docker image history --no-trunc nginx拉取和推送
# 拉取镜像docker pull nginxdocker pull nginx:1.25-alpine
# 推送镜像docker push myusername/myapp:latest
# 登录 Docker Hubdocker login
# 登出docker logout构建和标记
# 构建镜像docker build -t myapp .docker build -t myapp:v1.0 .
# 从不同目录构建docker build -t myapp -f ./docker/Dockerfile .
# 不使用缓存构建docker build --no-cache -t myapp .
# 使用构建参数docker build --build-arg VERSION=1.0 -t myapp .
# 标记镜像docker tag myapp:latest myapp:v1.0docker tag myapp myregistry.com/myapp:latest删除镜像
# 删除单个镜像docker rmi nginx
# 删除多个镜像docker rmi nginx redis mysql
# 强制删除docker rmi -f nginx
# 删除所有悬空镜像docker image prune
# 删除所有未使用的镜像docker image prune -a
# 删除所有镜像docker rmi $(docker images -q)容器命令
运行容器
# 运行容器docker run nginx
# 后台运行docker run -d nginx
# 指定名称docker run -d --name my-nginx nginx
# 端口映射docker run -d -p 8080:80 nginxdocker run -d -p 127.0.0.1:8080:80 nginx
# 环境变量docker run -d -e MYSQL_ROOT_PASSWORD=secret mysql
# 挂载卷docker run -d -v /host/path:/container/path nginxdocker run -d -v myvolume:/data nginx
# 自动删除容器docker run --rm -it ubuntu bash
# 资源限制docker run -d --memory="512m" --cpus="1.5" nginx
# 重启策略docker run -d --restart=always nginx查看容器
# 查看运行中的容器docker ps
# 查看所有容器docker ps -a
# 只显示容器 IDdocker ps -q
# 显示最近创建的 N 个容器docker ps -n 5
# 显示容器大小docker ps -s
# 自定义格式docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"启动、停止和重启
# 启动容器docker start container_name
# 停止容器docker stop container_name
# 强制停止docker kill container_name
# 重启容器docker restart container_name
# 暂停容器docker pause container_name
# 恢复容器docker unpause container_name容器操作
# 查看日志docker logs container_name
# 实时查看日志docker logs -f container_name
# 查看最后 100 行docker logs --tail 100 container_name
# 查看带时间戳的日志docker logs -t container_name
# 进入容器docker exec -it container_name bashdocker exec -it container_name sh
# 在容器中执行命令docker exec container_name ls /app
# 以 root 用户执行docker exec -u root -it container_name bash
# 查看容器详细信息docker inspect container_name
# 查看容器内进程docker top container_name
# 查看资源使用情况docker stats container_name
# 查看所有容器资源使用docker stats复制文件
# 从容器复制到主机docker cp container_name:/path/to/file /host/path
# 从主机复制到容器docker cp /host/path container_name:/path/to/file
# 复制目录docker cp container_name:/app /host/backup删除容器
# 删除容器(必须先停止)docker rm container_name
# 强制删除运行中的容器docker rm -f container_name
# 删除多个容器docker rm container1 container2 container3
# 删除所有停止的容器docker container prune
# 删除所有容器docker rm -f $(docker ps -aq)Docker Compose 命令
基本操作
# 启动服务docker compose up
# 后台启动docker compose up -d
# 构建并启动docker compose up --build
# 停止服务docker compose stop
# 停止并删除docker compose down
# 停止并删除(包括卷)docker compose down -v
# 重启服务docker compose restart查看和调试
# 查看服务状态docker compose ps
# 查看日志docker compose logs
# 实时查看日志docker compose logs -f
# 查看特定服务日志docker compose logs web
# 执行命令docker compose exec web bash
# 运行一次性命令docker compose run web python manage.py migrate
# 查看配置docker compose config
# 验证配置docker compose config --quiet服务管理
# 构建服务docker compose build
# 拉取镜像docker compose pull
# 推送镜像docker compose push
# 扩展服务docker compose up -d --scale web=3
# 查看服务日志docker compose logs -f web网络命令
# 列出网络docker network ls
# 创建网络docker network create mynetwork
# 查看网络详情docker network inspect mynetwork
# 连接容器到网络docker network connect mynetwork container_name
# 断开连接docker network disconnect mynetwork container_name
# 删除网络docker network rm mynetwork
# 删除所有未使用的网络docker network prune数据卷命令
# 列出卷docker volume ls
# 创建卷docker volume create myvolume
# 查看卷详情docker volume inspect myvolume
# 删除卷docker volume rm myvolume
# 删除所有未使用的卷docker volume prune
# 删除所有卷docker volume rm $(docker volume ls -q)系统命令
系统信息
# 查看 Docker 版本docker version
# 查看系统信息docker info
# 查看磁盘使用docker system df
# 详细磁盘使用docker system df -v清理命令
# 清理未使用的容器docker container prune
# 清理未使用的镜像docker image prune
# 清理未使用的网络docker network prune
# 清理未使用的卷docker volume prune
# 清理所有未使用的资源docker system prune
# 清理所有(包括卷)docker system prune -a --volumes
# 不提示确认docker system prune -f事件和监控
# 查看 Docker 事件docker events
# 查看特定容器事件docker events --filter container=container_name
# 查看镜像事件docker events --filter type=image导入导出
镜像导入导出
# 导出镜像docker save -o myapp.tar myapp:latest
# 导入镜像docker load -i myapp.tar
# 导出压缩镜像docker save myapp:latest | gzip > myapp.tar.gz
# 导入压缩镜像gunzip -c myapp.tar.gz | docker load容器导入导出
# 导出容器文件系统docker export container_name > container.tar
# 导入为镜像docker import container.tar myimage:latest
# 从 URL 导入docker import http://example.com/container.tar myimage实用组合命令
停止所有容器
docker stop $(docker ps -q)删除所有容器
docker rm -f $(docker ps -aq)删除所有镜像
docker rmi -f $(docker images -q)删除悬空镜像
docker rmi $(docker images -f "dangling=true" -q)进入最新创建的容器
docker exec -it $(docker ps -l -q) bash查看容器 IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name查看容器端口映射
docker port container_name监控所有容器资源
docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"常用别名
将这些添加到 .bashrc 或 .zshrc:
# Docker 别名alias d='docker'alias dc='docker compose'alias dps='docker ps'alias dpa='docker ps -a'alias di='docker images'alias dex='docker exec -it'alias dlogs='docker logs -f'alias dstop='docker stop'alias drm='docker rm'alias drmi='docker rmi'alias dprune='docker system prune -a'
# Docker Compose 别名alias dcu='docker compose up -d'alias dcd='docker compose down'alias dcl='docker compose logs -f'alias dcr='docker compose restart'alias dcb='docker compose build'调试技巧
查看容器为什么退出
docker logs container_namedocker inspect container_name | grep -A 10 State查看容器环境变量
docker exec container_name env测试网络连接
docker exec container1 ping container2docker exec container_name curl http://api:8000查看容器修改的文件
docker diff container_name查看镜像构建时间
docker inspect -f '{{.Created}}' myimage性能优化
构建优化
# 使用 BuildKitDOCKER_BUILDKIT=1 docker build -t myapp .
# 指定平台docker build --platform linux/amd64 -t myapp .
# 并行构建多个镜像docker build -t app1 ./app1 & docker build -t app2 ./app2 &资源限制
# CPU 限制docker run -d --cpus="1.5" nginx
# 内存限制docker run -d --memory="512m" --memory-swap="1g" nginx
# I/O 限制docker run -d --device-read-bps /dev/sda:10mb nginx安全相关
以非 root 用户运行
docker run -u 1000:1000 nginx只读文件系统
docker run --read-only nginx限制容器能力
docker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginx安全扫描
# 使用 Docker Scoutdocker scout cves nginx
# 使用 Trivytrivy image nginx小技巧
快速清理
# 清理所有未使用资源(谨慎使用)docker system prune -a --volumes -fJSON 格式化输出
docker inspect container_name | jq '.'查看镜像大小
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"自定义 PS 格式
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"