2016-03-02 4 views
2

Мне нужно было бы использовать два контейнера вместе: один с Tomcat и другой с базой данных. Я создал следующий файл YAML, который описывает услуги:Подключиться к другому контейнеру, используя Docker compose

postgredb: 
image: postgres 
expose: 
- 5432 
ports: 
    - 5432:5432 
    environment: 
    - POSTGRES_USER=user 
    - POSTGRES_PASSWORD=password 
tomcat: 
image: tomcat 
links: 
- postgredb:db 
ports: 
- 8080:8080 

После запуска Докер-Compose я могу видеть, что я не в состоянии достигнуть базы данных от сервера Tomcat, если я не извлечь IP-адрес базы данных (через докер-контроль) и использовать его при настройке пула соединений Tomcat в БД. С моей точки зрения, оба контейнера должны быть связаны, и я ожидаю найти базу данных на localhost в порту 5432. В противном случае я вижу небольшие преимущества при связывании контейнеров. Правильно ли я понимаю? Любое руководство будет высоко оценено!

ответ

8

Используйте псевдоним «db», который вы определили в файле, чтобы обратиться к имени хоста базы данных.

Контейнеры для связанного сервиса будут достижимыми на имени хоста , идентичного псевдоним или имя службы, если не был указан псевдоним.

+0

Спасибо, все получилось! – Carla

Смежные вопросы