Aktueller Standort: Startseite> Neueste Artikel> Alternative Verwendung, um festzustellen, ob es in Docker ausgeführt wird (kombiniert mit Php_uname ())

Alternative Verwendung, um festzustellen, ob es in Docker ausgeführt wird (kombiniert mit Php_uname ())

M66 2025-06-02

Bei der Entwicklung und Bereitstellung von PHP -Anwendungen kann es Ihnen helfen, zielgerichtete Optimierungen und Optimierungen vorzunehmen, wenn Sie wissen, ob Ihre PHP -Umgebung in einem Docker -Container ausgeführt wird. Normalerweise bietet eine containerisierte Umgebung eine isolierte Laufzeitumgebung. In einigen Fällen müssen wir überprüfen, ob PHP in einem Docker -Container ausgeführt wird.

In diesem Artikel wird vorgestellt, wie PHP -Funktion von PHP -Funktion PHP_uname () verwendet wird, um festzustellen, ob Ihr PHP in einem Docker -Container ausgeführt wird.

1. Was ist die Funktion php_uname () ?

PHP_uname () ist eine integrierte Funktion von PHP, die hauptsächlich zur Rückgabe von Systeminformationen verwendet wird, ähnlich wie der Uname -Befehl in UNIX-Systemen. Es wird den Namen des Betriebssystems, den Hostnamen, die Version und andere Informationen des aktuellen Systems zurückgegeben.

Die grundlegende Verwendung der Funktion ist wie folgt:

 php_uname();

Dadurch wird eine String zurückgegeben, die dem folgenden ähnlich ist (abhängig vom Betriebssystem):

 Linux myhostname 4.15.0-45-generic #48-Ubuntu SMP Thu Jan 17 16:24:23 UTC 2019 x86_64

Diese Zeichenfolge enthält Informationen wie Betriebssystemtyp, Hostname, Kernelversion usw.

2. Wie kann man bestimmen, ob PHP in einem Docker -Container ausgeführt wird?

Docker-Container verwenden normalerweise bestimmte Kernelversionen, und die Datei /proc/1/cgroup im Container enthält einige Docker-bezogene Informationen. Daher ist es nicht einfach zu beurteilen, ob PHP mit PHP_uname () in Docker ist. Wir können jedoch beurteilen, indem wir die Systemdateien kombinieren.

Schritt:

  1. Anzeigen php_uname () ausgabe

Verwenden Sie zunächst PHP_uname () , um die Betriebssysteminformationen auszugeben:

 echo php_uname();

Sie erhalten eine ähnliche Ausgabe wie folgt:

 Linux myhostname 5.4.0-100-generic #113-Ubuntu SMP Wed Nov 25 13:02:28 UTC 2020 x86_64

Dies zeigt uns nicht direkt, ob PHP in Docker ausgeführt wird. Zur weiteren Überprüfung müssen wir die Eigenschaften des Docker -Containers überprüfen.

  1. Kombiniert mit /proc/1/cgroup -Datei

Das Dateisystem eines Docker -Containers enthält normalerweise die Datei /proc/1/cgroup , und in dieser Datei finden wir Informationen zum Docker -Container. Durch Erkennen des Inhalts der Datei können wir schließen, ob sie in der Docker -Umgebung ausgeführt wird.

Sie können den folgenden Code verwenden, um zu überprüfen:

 function isRunningInDocker() {
    // Überprüfen Sie, ob es existiert /proc/1/cgroup dokumentieren
    if (is_readable('/proc/1/cgroup')) {
        $cgroup = file_get_contents('/proc/1/cgroup');
        
        // Bestimmen, ob es enthält docker Das Logo
        if (strpos($cgroup, 'docker') !== false) {
            return true; // Einlaufen Docker Mitte
        }
    }
    return false; // 未Einlaufen Docker Mitte
}

if (isRunningInDocker()) {
    echo "PHP Im Gange Docker 容器Mitte运行!";
} else {
    echo "PHP 没有Einlaufen Docker 容器Mitte。";
}

erklären:

  • Der Code überprüft die Datei/proc/1/cgroup- Datei und prüft, ob es mit Docker- verwandten Tags gibt.

  • Wenn die Datei die Docker -Identifikationszeichenfolge enthält, können Sie sicherstellen, dass PHP im Docker -Container ausgeführt wird.

3. CODE CODE BEISPIEL

 <?php

// verwenden php_uname() Erhalten Sie Betriebssysteminformationen
echo 'Betriebssysteminformationen: ' . php_uname() . "\n";

// Überprüfen Sie, ob es ist Docker 容器Mitte运行
function isRunningInDocker() {
    if (is_readable('/proc/1/cgroup')) {
        $cgroup = file_get_contents('/proc/1/cgroup');
        if (strpos($cgroup, 'docker') !== false) {
            return true; // Ja Docker Umfeld
        }
    }
    return false; // 不Ja Docker Umfeld
}

if (isRunningInDocker()) {
    echo "PHP Im Gange Docker 容器Mitte运行!";
} else {
    echo "PHP 没有Einlaufen Docker 容器Mitte。";
}
?>

4. Schlussfolgerung

Über die obige Methode können Sie PHP_uname () verwenden, um Betriebssysteminformationen zu erhalten und diese mit der Überprüfung der Docker-bezogenen Tags in der Datei /proc/1/cgroup zu kombinieren, um festzustellen, ob PHP im Docker-Container ausgeführt wird. Dies ist eine ordentliche und effektive Möglichkeit, Ihnen dabei zu helfen, bestimmte Aktionen oder Optimierungen in einer containerischen Umgebung auszuführen.

Hoffe dieser Artikel hilft dir! Wenn Sie weitere Fragen haben, besuchen Sie bitte unsere Website.