浏览器/外网访问docker container中的hadoop

假设你制作了个docker的 hadoop的镜像,镜像名叫 hd_image,如果想在外网的浏览器中访问hadoop的50070和8088端口,则在启动镜像hd_image时,

脚本如下:

docker run -d -it -h aaaaa -p 50070 -p 8088 --name bbbbb hd_image

--name bbbbb,表示这个容器的名字是bbbbb.

-h aaaaa,表示容器内的主机名为aaaaa.

-d ,表示detach模式.

-p 50070 -p 8088,表示将这个容器的端口50070和8088,绑定到你的主机上。

这时,就可以在外网中,用你的主机的eth0的ip再加上映射的端口号,访问你容器内的应用了。

an example:

docker ps

会发现 PORTS下面出现了容器和主机的端口映射,比如我的是:

0.0.0.0:49212->50070/tcp, 0.0.0.0:49213->8088/tcp

然后执行命令:

sudo ifconfig eth0

会看到你主机的ip地址,比如我的是

eth0      Link encap:Ethernet  HWaddr 08:00:27:0B:1B:32
          inet addr:192.168.4.341  Bcast:192.168.4.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe0b:1b32/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5229 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2850 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:685234 (669.1 KiB)  TX bytes:2826660 (2.6 MiB)

这时,你在你的浏览器中,输入:

192.168.4.341:49212
192.168.4.341:49213

就可以分别访问你docker容器中的hadoop的50070端口和8088端口的应用了,That's all!

 

posted @ 2015-04-25 14:37  lasclocker  阅读(1877)  评论(0编辑  收藏  举报