Docker intercontainer通信
我想运行Hadoop
和Flume
dockerized。 我有一个标准的Hadoop
图像的所有默认值。 我看不出这些服务如何相互沟通放置在分开的容器中。
Flume
的Dockerfile
看起来像这样:
FROM ubuntu:14.04.4 RUN apt-get update && apt-get install -q -y --no-install-recommends wget RUN mkdir /opt/java RUN wget --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" -qO- \ https://download.oracle.com/otn-pub/java/jdk/8u20-b26/jre-8u20-linux-x64.tar.gz \ | tar zxvf - -C /opt/java --strip 1 RUN mkdir /opt/flume RUN wget -qO- http://archive.apache.org/dist/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz \ | tar zxvf - -C /opt/flume --strip 1 ADD flume.conf /var/tmp/flume.conf ADD start-flume.sh /opt/flume/bin/start-flume ENV JAVA_HOME /opt/java ENV PATH /opt/flume/bin:/opt/java/bin:$PATH CMD [ "start-flume" ] EXPOSE 10000
你应该链接你的容器。 有一些变体你可以如何实现这一点。
1)发布端口:
docker run -p 50070:50070 hadoop
选项p
使用主机的端口50070绑定您的docker容器的端口50070
2)链接容器(使用docker-compose)
泊坞窗,compose.yml
version: '2' services: hadoop: image: hadoop:2.6 flume: image: flume:last links: - hadoop
链接选项在这里绑定您的水槽容器与hadoop
更多关于这个信息https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/