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