Docker 常用命令速查表——开发/部署时随手翻。基础概念见《Docker 核心概念与 Dockerfile 基础》。
一、镜像(Image)命令
bash
docker images # 列出本地镜像
docker pull nginx:1.27 # 拉取镜像(tag 默认 latest)
docker search mysql # 搜索镜像
docker tag myapp:1.0 myapp:latest # 打标签
docker rmi myapp:1.0 # 删除镜像(先删引用它的容器)
docker image prune # 清理悬空镜像(<none>)二、容器(Container)命令
bash
# 创建并运行
docker run -d -p 8080:8080 --name myapp myapp:1.0
# -d 后台 -p 主机:容器端口映射 --name 起名
docker ps # 运行中的容器
docker ps -a # 所有容器(含已停止)
docker start myapp # 启动已存在的容器
docker stop myapp # 停止
docker restart myapp # 重启
docker logs myapp # 看日志
docker logs -f myapp # 实时跟踪日志(像 tail -f)
docker logs --tail 100 myapp # 只看最后 100 行
docker exec -it myapp bash # 进容器内终端
docker cp myapp:/app/log.txt ./ # 从容器拷文件出来
docker rm myapp # 删除容器(先 stop)
docker rm -f myapp # 强制删除(running 也能删)
docker inspect myapp # 查看容器详情(IP/挂载/环境变量)
docker stats # 实时资源占用(CPU/内存)
docker top myapp # 容器内进程三、网络(Network)
bash
docker network ls # 列出网络
docker network create mynet # 创建自定义网络
docker run -d --network mynet --name app1 myapp:1.0 # 容器加入网络
docker network connect mynet app2 # 容器连入已运行网络为什么要自定义网络:默认 bridge 网络里,容器用 IP 互相访问(IP 会变);同一自定义网络下,容器可以用名字互相访问(服务发现)——Compose 里就是这么用的。
四、数据卷(Volume)
bash
docker volume ls # 列出卷
docker volume create mydata # 创建卷
docker run -d -v mydata:/data --name db mysql:8.0 # 挂载卷到容器 /data
# 目录挂载(开发常用)
docker run -d -v /host/path:/app myapp:1.0为什么要用卷:容器删除后数据丢失,数据放卷里(或宿主目录),容器随便删、数据不丢。
五、清理类
bash
docker container prune # 删所有停止的容器
docker image prune # 删悬空镜像
docker system df # 看磁盘占用
docker system prune -a # 一键清理(容器/镜像/网络/缓存)六、容器生命周期速查图
docker pull nginx docker run -d --name web nginx
│ │
镜像仓库 ──► 本地镜像 ──► 容器(运行) ── docker stop ──► 容器(停止)
│
docker rm │ docker start
▼
删除容器小结
- 镜像:images / pull / rmi / tag
- 容器:run / ps / logs / exec / cp / rm(最常用就是这几个)
- 网络:自定义网络下容器用名字互访(服务发现)
- 卷:数据放卷里,容器删了数据不丢
- 清理:
docker system prune -a一键清理
下一篇可以看《Docker Compose 多容器编排》(一条命令起全套 MySQL+Redis+App)。
