2017-01-03 8 views
-1

Когда я запускаю свой файл докеров для запуска базы данных H2, он автоматически назначает IP-адрес.Как определить IP-адрес в DockerFile для базы данных H2

Как установить IP-адрес по окружению, поэтому докере разрешает только два IP-адреса для подключения TCP и HTTP-соединения.

FROM klousiaj/oracle-java:7.79 
MAINTAINER J.P. Klousia <klousiaj> 

ENV DOWNLOAD http://www.h2database.com/h2-2016-10-31.zip 
ENV DATA_DIR /opt/h2-data 

RUN curl ${DOWNLOAD} -o h2.zip \ 
    && unzip h2.zip -d /opt/ \ 
    && rm h2.zip \ 
    && mkdir -p ${DATA_DIR} 

EXPOSE 8082 9092 

CMD java -cp /opt/h2/bin/h2*.jar org.h2.tools.Server \ 
    -web -webAllowOthers -webPort 8082 \ 
    -tcp -tcpAllowOthers -tcpPort 9092 \ 
    -baseDir ${DATA_DIR} 

VOLUME ${DATA_DIR} 

ответ

0

Вы не используете никаких статических ips в парадигме докера, насколько это возможно.

Если вы не будете услугу, чтобы поговорить с другом один, вы используете имя службы, которую Вы определили в файле докер-COMPOSE, позволяет сказать «дБ»

version: "2" 
services: 
    db: 
    image: klousiaj/oracle-java:7.79 
    app: 
    image: busybox 

Так из приложения, вы можете подключиться к db с использованием telnet db $dbport, например в терминах mysql вы идете с telnet db 3306.

Конечно, db может также подключиться к портам anyu в приложении, используя telnet app.

Вы никогда не хотите обрабатывать IP-адреса или сети самостоятельно, только если вам действительно нужны (очень редкие случаи).

Если вы хотите получить доступ к App-веб-порта от хоста, вы выставите, что один хосту

version: "2" 
services: 
    db: 
    image: klousiaj/oracle-java:7.79 
    app: 
    image: nginx 
    port: 
     - 80:80 

Это означает, что теперь вы можете использовать ваш хост IP, чтобы получить доступ к порту 80 из Nginx приложения ", wget http: //: 80