docker命令分为镜像和容器两类,高频组合为拉镜像→跑容器→查日志→进容器调试。镜像操作包括pull、images、rmi、build;容器操作包括run、ps、stop/start/restart、exec;辅以logs、cp、volume等实用命令。

直接上手用,不用先背概念。Docker 命令就两类:管镜像的、管容器的,其他都是延伸。重点不是记全,而是掌握高频组合,比如拉镜像→跑容器→查日志→进容器调试,这一套流程走通,80% 场景都能应对。
镜像操作:拉、看、删、构
镜像是“模板”,得先有它才能起容器。
-
拉镜像:用
docker pull nginx下最新版;指定版本加标签,比如docker pull redis:7.2-alpine,轻量又稳定 -
看本地有哪些:
docker images列出所有;加-q只输出 ID,适合脚本处理;加--format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"看得更清爽 -
删不用的镜像:
docker rmi nginx删除单个;docker image prune清理悬空镜像(那些没标签、用不上的中间层);docker image prune -a彻底清空未被任何容器引用的镜像(慎用) -
自己打包镜像:写好
Dockerfile后,docker build -t myapp:v1 .构建;加--no-cache强制跳过缓存,确保每次都是全新构建
容器操作:启、停、查、进
容器是镜像的“活实例”,日常打交道最多。
-
启动容器:后台运行最常用:
docker run -d --name web -p 8080:80 nginx;-d表示后台,--name起个好记的名字,-p把宿主机 8080 映射到容器 80 -
查看状态:
docker ps看正在跑的;docker ps -a看全部(含已退出的);加--format可定制输出字段,比如只看名字和端口 -
停止与重启:
docker stop web安全停止;docker start web再启动;docker restart web一键重启 -
进容器调试:
docker exec -it web sh或bash(取决于镜像);如果容器里没 bash,用sh更保险
日志与数据:查错、保文件
出了问题看日志,要留配置或数据就得挂载。
-
实时看日志:
docker logs -f web滚动输出,类似tail -f;加--since "10m"查最近10分钟的日志 -
拷文件进出容器:
docker cp ./config.yml web:/app/config.yml把本地配置复制进去;docker cp web:/var/log/app.log ./把日志拉出来分析 -
持久化数据:启动时加
-v /host/data:/container/data,容器删了,宿主机目录里的数据还在;生产环境别用--volumes-from这种旧方式,优先用命名卷docker volume create mydata再挂载
实用技巧:省事、防坑、能落地
真正用起来,有些细节决定效率和稳定性。
-
自动重启很重要:生产环境启动容器务必加
--restart=always,否则进程一崩就没人管了 -
别硬编码端口:用
-P让 Docker 随机分配宿主机端口,再用docker port web查映射关系,适合开发测试 -
清理要分清对象:
docker system prune清镜像、容器、网络、构建缓存(加-a更彻底);但docker container prune只清已停止的容器,更安全 -
查详细信息用 inspect:
docker inspect web能看到 IP、挂载点、网络配置、健康状态等,比ps详细得多,排障必用











