背景:

在一些开发场景中,容器中的应用(如java应用)需要访问外部的大数据系统(如Hadoop、Spark),应用内部会通过如下hadoop配置文件:
-rw-r–r-- 1 user 197121 3858 11月 25 15:37 core-site.xml
-rw-r–r-- 1 user 197121 1732 11月 25 15:37 hdfs-site.xml
-rw-r–r-- 1 user 197121 5110 11月 25 15:37 mapred-site.xml
-rw-r–r-- 1 user 197121 3587 11月 25 15:37 yarn-site.xml
去连接、访问、操作集群。
此时,由于docker容器内部的/etc/hosts中并未包含外部hadoop集群的 IP:HOSTNAME 映射关系,将导致访问失败。

实现方案①:

docker原生命令中添加 --add-host $(HOSTNAME):(IP) 配置参数添加
样例:

[root@dn1 docker_demo]# docker images | grep centos
centos                                                   latest              0d120b6ccaa8        3 months ago        215MB

[root@dn1 docker_demo]#
docker run -it -d \
--name os_base_test1 \
--add-host nn1:111.111.111.111 \
--add-host dn1:111.111.111.112 \
--add-host dn2:111.111.111.113 \
d120b6ccaa8 /bin/bash
``
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐