docker文件中的docker组成,群集和IP地址

我会尽我所能做到这一点,我会以身作则。 想象一下,我们必须configurationpostgresql复制和一些将被使用的web应用程序。 docker-compose.yml可能看起来像这样

web: build: ./webapp/web ports: - "7000:7000" links: - pgpool2 pgpool2: build: ./pgpool2 ports: - "9999:9999" links: - master - slave master: build: ./master ports: - "5432:5432" slave: build: ./slave links: - master 

在dockerfiles(master,slave)里面我们需要把ip地址放在一起(例如master)

从Ubuntu的

 .... RUN echo "host replication repuser 172.17.0.3/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "host all all 172.17.0.2/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "host all all 172.17.0.2/0 trust" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "host all pgpool 172.17.0.4/0 trust" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "host all all 172.17.0.4/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf ..... 

这个解决scheme是丑陋的,但即使我把一些variables,而不是自己inputIP地址有问题。 docker群为所有可用主机放置容器(每个容器的IP地址正在改变)。 唯一可行的解​​决scheme是放置一些有效的IP地址的variables。 例如,如果我们有这条线

 RUN echo "host all all 172.17.0.2/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf 

我需要一些像服务一样的名字相同的variables,所以在这个例子中,这个值需要有有效的IP地址。 否则就不可能这样做,因为每个服务的IP地址会被群体dynamic地改变(容器被群体随机放置)。 如果我错了,请纠正我。