>운영 및 유지보수 >Docker >docker는 호스트 이름을 어떻게 얻나요?

docker는 호스트 이름을 어떻게 얻나요?

coldplay.xixi
coldplay.xixi원래의
2020-06-12 11:37:376029검색

docker는 호스트 이름을 어떻게 얻나요?

Docker에서 호스트 이름을 얻는 방법은 무엇입니까?

Docker 호스트 이름 획득 방법:

nodejs 환경에서 테스트를 통과했습니다. 다른 언어에도 동일하게 적용됩니다. 환경 변수를 얻는 방법만 사용하면 됩니다.

아이디어: 도커 컨테이너와 호스트 환경은 격리되어 있지만, 도커 컨테이너 시작 시 호스트의 호스트 이름을 환경 변수로 전달할 수 있으며 코드는 컨테이너의 값을 얻을 수 있습니다.

작업:

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

yml 파일을 사용하여 시작하는 경우:

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

성공적으로 시작되면 컨테이너의 내부 환경 변수에 추가 HOST_Q가 있을 것입니다. 그런 다음 프로그램을 사용하여

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":"/"}

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);   
    }
}

추천 튜토리얼: "docker video tutorial"

위 내용은 docker는 호스트 이름을 어떻게 얻나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.