假设你制作了个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!
时间: 2024-10-08 22:11:47