用PHP验证docker的容器?

时间:2018-06-21 08:55:20

标签: php docker containers

我有一台带有一些docker容器的服务器,该服务器可以启动以托管一些游戏聚会。

我想列出我的码头工人的容器,看看我的服务器是启动还是关闭。 但是我不知道该怎么做。 我的项目是使IHM列出泊坞窗的容器,并查看容器是打开还是关闭。我想用PHP做到这一点。

我试图用PHP列出一个基本的文件列表器功能,但是没有用。我尝试使用$ _SERVER变量。

您知道是否有可能,我该怎么做?

谢谢。

2 个答案:

答案 0 :(得分:0)

如果要向上/向下检查容器:

docker ps -a

它显示您退出并正在运行的容器。如果您还想检查服务器程序是否运行良好,那么如果您的程序已作为ENTRYPOINTS启动,那么docker ps -a也很有用。 否则,如果要检查不是入口点的其他程序是否启动/关闭,请参阅下一节:

如果要检查已启动容器中运行良好的程序,请执行以下操作: 可能是因为您要检查其他程序,所以您的容器已启动但无法正常工作。 对于这种情况,您可以定义一个HEALTHCHECK:docker documentation healthcheck

此时,您可以定义一个PHP程序来检查运行状况是否良好,并且该程序正在容器中运行,并且可以从此PHP程序输出的外部看到。

换句话说,您可以在docker中定义:

HEALTHCHECK --interval=5m --timeout=3s \
  CMD <your PHP check program> || exit 1

答案 1 :(得分:0)

我们希望在我们的每项服务中都有一个“健康”网址。

例如在Laravel中,我们这样定义网络路线:

Route::any('health', function() {
    try {
        foreach (['default', 'secondDbConnection', 'thirdDbConnection'] as $dbConnection) {
            DB::connection($dbConnection)->getPdo();
        }
        return response('OK', 200);
    } catch (Exception $e) {
        return response($e->getMessage(), 500);
    }
});

Route::any('ping', function() {
    return response('pong', 200);
});

这样,您可以检查包括以下内容的服务:它的数据库是健康的。

然后,您可以在健康信息中心上查看所有/ health网址