Docker intercontainer通信

我想运行HadoopFlume dockerized。 我有一个标准的Hadoop图像的所有默认值。 我看不出这些服务如何相互沟通放置在分开的容器中。

FlumeDockerfile看起来像这样:

 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/