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 중국어 웹사이트의 기타 관련 기사를 참조하세요!