Maison > Opération et maintenance > Docker > Comment Docker obtient-il le nom d'hôte ?

Comment Docker obtient-il le nom d'hôte ?

coldplay.xixi
Libérer: 2020-06-13 12:45:40
original
6076 Les gens l'ont consulté

Comment Docker obtient-il le nom d'hôte ?

Comment Docker obtient-il le nom d'hôte ?

Méthode Docker pour obtenir le nom d'hôte :

a réussi le test dans l'environnement nodejs. La même chose s'applique aux autres langages. obtenir des variables d'environnement.

Idée : le conteneur Docker et l'environnement hôte sont isolés, mais le nom d'hôte de l'hôte peut être transmis en tant que variable d'environnement lors du démarrage du conteneur Docker, et le code peut obtenir la valeur dans le conteneur.

Opération :

docker run -d -p 3000:3000 --name myTest -e HOST_Q=$(hostname)  mytest:v1 # 使用-e 参数传入环境变量,值为主机名
Copier après la connexion

Si vous utilisez un fichier yml pour démarrer :

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
Copier après la connexion

Après un démarrage réussi, il y aura un HOST_Q supplémentaire dans la variable d'environnement interne du conteneur. Vous pouvez ensuite utiliser le programme pour le retirer :

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":"/"}
Copier après la connexion

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);   
    }
}
Copier après la connexion

Tutoriel recommandé : "tutoriel vidéo docker"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal