Docker 查看程序
在使用 Docker 运行容器时,我们经常需要查看容器中运行的程序的状态、日志以及其他相关信息。Docker 提供了一些命令和工具来实现这些功能,本文将介绍如何使用这些工具来查看程序。
1. 查看容器状态
我们首先需要了解容器的当前状态,包括容器的运行状态、端口映射等信息。使用 docker ps
命令可以列出当前正在运行的容器:
$ docker ps
该命令将返回一个表格,显示容器的 ID、名称、状态、端口映射等信息。如果想查看所有的容器,包括正在运行和已停止的容器,可以使用 docker ps -a
命令。
如果只想查看某个特定容器的信息,可以使用 docker inspect
命令:
$ docker inspect <container_id>
其中 <container_id>
是容器的 ID,可以在 docker ps
命令的输出中找到。该命令将返回一个 JSON 格式的容器信息,包括容器的状态、网络配置、挂载点等详细信息。
2. 查看容器日志
日志是查看程序运行状态和故障排查的重要依据。Docker 提供了 docker logs
命令来查看容器的日志信息:
$ docker logs <container_id>
该命令将输出容器的标准输出和标准错误输出。如果希望实时查看日志,可以使用 -f
参数:
$ docker logs -f <container_id>
除了查看当前的日志信息,我们还可以通过查看容器的日志文件来进行更深入的分析。Docker 将容器的日志文件存储在宿主机上的路径中,可以通过 docker inspect
命令查看容器的日志路径:
$ docker inspect -f '{{.LogPath}}' <container_id>
然后,我们可以使用常规的文件查看命令来查看容器的日志文件。
3. 进入容器执行命令
有时,我们需要在容器中执行一些命令来查看程序的当前状态或进行故障排查。可以使用 docker exec
命令来在运行的容器中执行命令:
$ docker exec -it <container_id> <command>
其中,-it
参数表示在交互模式下执行命令,<container_id>
是容器的 ID,<command>
是要执行的命令。例如,我们可以进入一个运行中的容器并启动一个 Shell:
$ docker exec -it <container_id> sh
4. 序列图
下面是一个使用 Docker 查看程序的示例序列图:
sequenceDiagram
participant User
participant DockerCLI
participant DockerEngine
participant Container
User->>DockerCLI: docker ps
DockerCLI->>DockerEngine: List Containers
DockerEngine-->>DockerCLI: Return Container List
DockerCLI-->>User: Display Container List
User->>DockerCLI: docker inspect <container_id>
DockerCLI->>DockerEngine: Inspect Container
DockerEngine-->>DockerCLI: Return Container Info
DockerCLI-->>User: Display Container Info
User->>DockerCLI: docker logs <container_id>
DockerCLI->>DockerEngine: Get Container Logs
DockerEngine-->>DockerCLI: Return Container Logs
DockerCLI-->>User: Display Container Logs
User->>DockerCLI: docker exec -it <container_id> <command>
DockerCLI->>DockerEngine: Execute Command in Container
DockerEngine-->>DockerCLI: Return Command Output
DockerCLI-->>User: Display Command Output
5. 旅行图
下面是一个使用 Docker 查看程序的旅行图示例:
journey
title 查看程序的旅行
section 启动容器
DockerCLI->DockerEngine: docker run -d <image>
DockerEngine->DockerRegistry: Pull Image
DockerRegistry-->DockerEngine: Return Image
DockerEngine-->DockerCLI: Return Container ID
section 查看容器状态
DockerCLI->D