Docker是云原生的核心,下面我详解Docker运维命令@mikechen
1. 查看运行中的容器
docker ps
查看当前所有运行中的容器。
docker ps
输出示例:
CONTAINER ID IMAGE STATUS
a12b34cd56 nginx Up 3 days
b23c45de67 redis Up 5 days
常用参数:
docker ps -a
查看所有容器(包括已停止容器)。
2. 查看容器日志
快速定位:
配置错误;
数据库连接失败;
Redis连接失败;
JVM启动异常;
docker logs
线上排障第一命令。
docker logs nginx
查看完整日志:
docker logs 容器ID
实时查看:
docker logs -f nginx
最近100行:
docker logs --tail 100 nginx
最近10分钟:
docker logs --since 10m nginx
使用场景
应用启动失败:
docker logs app
3. 进入容器内部
docker exec
线上排查问题最常用。
进入容器:
docker exec -it nginx bash
如果没有 bash:
docker exec -it nginx sh
使用场景
查看配置文件:
cat /etc/nginx/nginx.conf
查看进程:
ps -ef
查看磁盘:
df -h
查看网络:
netstat -tunlp
4. 查看容器资源占用
可以用于排查:
容器网络;
Volume挂载;
环境变量;
启动参数;
docker stats
实时监控:
docker stats
输出:
CONTAINER CPU % MEM USAGE
nginx 2.1% 120MB
redis 0.5% 80MB
指定容器:
docker stats nginx
使用场景
线上告警:
CPU 100%
内存飙升
排查:
docker stats
快速定位问题容器。
5. 查看容器详细信息
docker inspect
查看容器配置:
docker inspect nginx
查看IP地址:
docker inspect nginx | grep IPAddress
查看挂载目录:
docker inspect nginx
6. 重启容器
docker restart
重启服务:
docker restart nginx
多个容器:
docker restart nginx redis mysql
使用场景
线上发布后:
配置更新
代码更新
执行:
docker restart 容器名
快速生效。
7. 停止与启动容器
停止:
docker stop nginx
启动:
docker start nginx
强制停止:
docker kill nginx
使用场景
服务维护窗口:
docker stop app
维护完成:
docker start app
8. 查看镜像
docker images
查看本机镜像:
docker images
输出:
REPOSITORY TAG
nginx latest
redis 7
mysql 8.0
查看镜像大小:
docker images
使用场景
服务器磁盘爆满时:
docker images
查找超大镜像。
删除镜像:
docker rmi 镜像ID
9. 清理无用资源
Docker 用久后最容易出现磁盘空间不足问题。
查看空间占用:
docker system df
清理无用资源:
docker system prune
强制清理:
docker system prune -a
清理 Volume:
docker volume prune
使用场景
线上服务器磁盘告警:
Disk Usage > 90%
执行:
docker system df
docker system prune
快速释放空间。
Docker线上运维排障口诀
服务挂了
docker ps
docker logs
CPU飙高
docker stats
docker exec
top
网络异常
docker inspect
docker exec
配置问题
docker exec -it 容器 bash
磁盘爆满
docker system df
docker system prune