Docker提供给了我们一些用于troubleshooting的命令,以备不时之需。
- docker ps - 列出正在运行的容器。这个命令应该是我们troubleshooting时首先要运行的命令之一,因为我们认为服务运行不正常时,很可能容器根本就没在运行。。。。
- docker top - 列出容器中正在运行的进程。e.g.
docker top 8804d509703b
- docker stats - 查看容器的资源利用率(CPU、内存,硬盘与网络),因为资源利用率的问题有时会导致容器出现一些不可预期的行为。e.g.
docker stats 8804d509703b
- docker logs - 查看容器的log。有时,查看容器的输出日志可能会很有帮助,并确定发生了什么问题。e.g.
docker logs 8804d509703b
- docker events - 实时的获取容器的事件。也可以通过--since timestamp的方式获取特定时刻以后的事件。e.g.
docker events --since 1506409720
- docker diff - 查看容器文件系统的更改。
- docker exec - 用于连接到一个正在运行的容器并执行命令。e.g.
docker exec 8804d509703b echo "hello"
我们会在终端里看到"hello",但这是容器的输出。
有时docker registry中的镜像可能会堆积并耗尽我们的磁盘空间,从而影响容器的性能。所以,请及时清理你不再需要的镜像。
当你启动一个容器时有可能会遇到命名冲突的错误提示,例如:
Conflict. The container name "wordpress" is already in use by container ....
要解决这个问题,你可以运行docker ps -a来查看主机上的所有容器,如果已占用这个名字的容器的状态为Exited,那么我们可以通过docker rm命令来删除它。