Docker线上运维命令详解(9个最常用命令)

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

评论交流
    说说你的看法