镜像相关(image)
docker pull nginx:latest # 拉镜像
docker images # 看本地有哪些镜像
docker rmi nginx # 删镜像(有容器在用就删不掉)
docker build -t myapp:1.0 . # 用当前目录 Dockerfile 构建镜像
docker tag myapp:1.0 myapp:latest # 打 tag
docker save myapp > myapp.tar # 镜像导出成文件
docker load < myapp.tar # 从文件导入镜像
容器相关
启停
docker run -d -p 8080:80 --name web nginx # 后台跑 + 端口映射 + 起名字
docker run -it ubuntu /bin/bash # 交互式进容器
docker ps # 正在跑的容器
docker ps -a # 所有容器(含已退出的)
docker start web / docker stop web / docker restart web
docker rm web # 删容器(要先 stop)
docker rm -f web # 强制删(不用先 stop)
docker run --rm alpine echo hi # 跑完自动删容器(调试好用)
进容器 / 看日志
docker exec -it web /bin/bash # 进正在跑的容器(bash)
docker exec -it web sh # alpine 没 bash,用 sh
docker logs web # 看 stdout 日志
docker logs -f --tail 100 web # 实时追 100 行
资源 / 信息
docker inspect web # 看容器所有元数据(IP、挂载、env…)
docker stats web # 实时 CPU / 内存占用
docker top web # 容器里跑了哪些进程
网络(network)
docker network ls # 有哪些网络
docker network create mynet # 自建桥接网络(容器间通 hostname)
docker network connect mynet web # 把容器挂到网络上
docker network inspect mynet # 看网络详情(含哪些容器)
同个自定义网络里的容器,可以直接ping 容器名,比--link新也稳
数据卷(volume)
docker volume ls
docker volume create data
docker run -v data:/data nginx # 挂载卷
docker run -v /host/path:/container/path nginx # 挂宿主机目录(bind mount)
docker volume prune # 删没被用的卷
清理(prune —— 救命命令)
docker container prune # 删所有 stopped 容器
docker image prune -a # 删所有没被用的镜像(-a 连 none 以外的也清)
docker volume prune # 删没被用的卷
docker system prune -a # 全清(容器+镜像+网络+缓存,谨慎)
prune系列没二次确认,服务器上慎用 -a
Docker Compose(多容器编排,单机最常用)
docker compose up -d # 按 docker-compose.yml 启动
docker compose down # 停 + 删容器网络(卷默认不删)
docker compose down -v # 连卷一起删
docker compose logs -f # 看所有服务日志
docker compose ps
老版本是docker-compose(带横杠),新版本docker compose(子命令),功能一样。
系统级
docker info # Docker 引擎概览(驱动、镜像源、存储…)
docker version # 客户端 / 服务端版本
docker login # 登私有仓库
docker logout