Docker 常用命令速查表:容器化开发必备
Docker 是现代开发的基石工具。本文整理了最实用的 Docker 命令,从镜像管理到容器操作,帮你快速查阅、提升容器化开发效率。
为什么需要 Docker 速查表
Docker 已成为现代开发的标配工具。容器化让开发、测试、部署变得一致且可重复。但 Docker 命令参数繁多,本文整理的速查表能帮你快速查阅常用操作。
镜像操作
拉取与查看
# 拉取官方镜像
docker pull node:20
docker pull nginx:latest
docker pull postgres:15-alpine
# 查看本地镜像
docker images
docker images -a # 显示所有镜像(包括中间层)
# 查看镜像详情
docker inspect node:20
构建与删除
# 用 Dockerfile 构建镜像
docker build -t myapp:1.0 .
# 构建时指定 Dockerfile 路径
docker build -f docker/Dockerfile.prod -t myapp:prod .
# 删除镜像
docker rmi node:18
docker rmi $(docker images -q) # 删除所有镜像(慎用)
# 清理 dangling 镜像(无 tag 的镜像)
docker image prune
docker image prune -a # 删除所有未使用的镜像
容器操作
运行容器
# 运行容器(前台)
docker run node:20 node -e "console.log('hello')"
# 后台运行(-d)
docker run -d -p 3000:3000 --name my-app myapp:1.0
# 端口映射(-p 主机端口:容器端口)
docker run -d -p 8080:80 nginx
# 挂载卷(-v)
docker run -d -v $(pwd)/data:/data redis
# 环境变量(-e)
docker run -d -e NODE_ENV=production myapp:1.0
查看与管理
# 查看运行中的容器
docker ps
docker ps -a # 查看所有容器(包括已停止的)
# 查看容器日志
docker logs my-app
docker logs -f my-app # 实时追踪日志(类似 tail -f)
# 进入容器(调试用)
docker exec -it my-app /bin/bash
docker exec -it my-app sh # Alpine 镜像用 sh
# 停止 / 启动 / 重启
docker stop my-app
docker start my-app
docker restart my-app
# 删除容器
docker rm my-app
docker rm $(docker ps -aq) # 删除所有已停止的容器
卷(Volume)管理
# 创建卷
docker volume create my-data
# 查看卷
docker volume ls
# 查看卷详情
docker volume inspect my-data
# 删除卷
docker volume rm my-data
docker volume prune # 删除未使用的卷
网络管理
# 查看网络
docker network ls
# 创建自定义网络
docker network create my-net
# 将容器连接到网络
docker network connect my-net my-app
# 断开连接
docker network disconnect my-net my-app
Docker Compose
常用命令
# 启动所有服务(后台)
docker compose up -d
# 停止并移除容器、网络
docker compose down
# 查看服务状态
docker compose ps
# 查看服务日志
docker compose logs
docker compose logs -f web # 查看指定服务日志
# 重新构建并启动
docker compose up -d --build
docker-compose.yml 示例
version: "3.9"
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- ./src:/app/src
environment:
- NODE_ENV=development
depends_on:
- db
db:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: example
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
pgdata:
实用技巧
清理 Docker 占用空间
# 查看 Docker 磁盘占用
docker system df
# 清理所有未使用资源(镜像、容器、卷、网络)
docker system prune
docker system prune -a # 包括未使用的镜像
在容器内执行命令
# 单次执行
docker exec my-app node -v
# 交互式 shell
docker exec -it my-app sh
复制文件
# 从容器复制到主机
docker cp my-app:/app/config.json ./config.json
# 从主机复制到容器
docker cp ./data.txt my-app:/app/data.txt
总结
掌握这些 Docker 命令,日常开发中的容器化需求基本都能覆盖。建议把本文加入书签,随时查阅!
> **Pro Tip**: 使用 docker stats 可以实时查看所有容器的资源占用情况(CPU、内存、网络)。