Heim > Betrieb und Instandhaltung > Docker > Wie erhält Docker den Hostnamen?

Wie erhält Docker den Hostnamen?

coldplay.xixi
Freigeben: 2020-06-13 12:45:40
Original
6077 Leute haben es durchsucht

Wie erhält Docker den Hostnamen?

Wie erhält Docker den Hostnamen?

Dockers Methode zum Abrufen des Hostnamens:

hat den Test in der nodejs-Umgebung bestanden. Dasselbe gilt für andere Sprachen. Sie müssen nur die Methode von verwenden Abrufen von Umgebungsvariablen.

Idee: Der Docker-Container und die Host-Umgebung sind isoliert, aber der Hostname des Hosts kann beim Starten des Docker-Containers als Umgebungsvariable übergeben werden, und der Code kann den Wert im Container abrufen.

Vorgang:

docker run -d -p 3000:3000 --name myTest -e HOST_Q=$(hostname)  mytest:v1 # 使用-e 参数传入环境变量,值为主机名
Nach dem Login kopieren

Wenn Sie zum Starten eine yml-Datei verwenden:

version: '3'
services:
  mysql:
    image: mysql:v1
    container_name: xx-mysql
    restart: always
    networks:
      - host
    environment:
      - MYSQL_ROOT_PASSWORD=xxx0209
      - HOST_Q=$(hostname)  # 在这设置
    ports:
      - 3306:3306
    volumes:
      - /opt/data/mysql:/var/lib/mysql:z
Nach dem Login kopieren

Nach erfolgreichem Start gibt es ein zusätzliches HOST_Q in der internen Umgebungsvariablen des Containers. Sie können es dann mit dem Programm herausnehmen:

nodejs:

# 从process中取出环境变量对象
let env = process.env;
console.log(JSON.stringify(env));
# env['HOST_Q']就是最终要获取的主机名
 
# output
[2019-04-17T06:54:12.951Z] [e1e7115e0a33] [info]: {"NODE_VERSION":"8.9.4","HOSTNAME":"e1e7115e0a33","YARN_VERSION":"1.3.2","HOME":"/root","HOST_Q":"emg-ubuntu-pub02","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","PWD":"/"}
Nach dem Login kopieren

java:

public class Test {
    public static void main(String[] args) {
        Map<String, String> map = System.getenv();
        String hostName = map.get("HOST_Q");
        System.out.println(hostName);   
    }
}
Nach dem Login kopieren

Empfohlenes Tutorial: „Docker-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie erhält Docker den Hostnamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage