docker怎么获取hostname?

互联网 20-6-12

docker怎么获取hostname?

docker获取hostname的方法:

在nodejs环境中测试通过,其它语言同理,只需要使用获取环境变量的方法即可。

思路:docker容器和宿主机环境是隔离的,但是可以在启动docker容器时将宿主机的主机名以环境变量的形式传入,代码在容器中获取该值即可。

操作:

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视频教程》

以上就是docker怎么获取hostname?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: hostname
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:win10无法安装docker怎么办?

相关资讯