2016-09-29 6 views
0

У меня есть докерная сеть между geoserver и postgres. Когда я делаю докеры, проверяю container name Я вижу, что эти два связаны. Когда я EXEC в контейнер Geoserver Я могу свистеть контейнер Postgres, но когда я пытаюсь подключиться к БД Postgres внутри контейнера Geoserver я получаю сообщение об ошибкеСсылка между двумя контейнерами докеров в сети

Psql: не могли бы перевести имя хоста postgres на адрес: Имя или служба не известны

Вот пример моего Докер-композе:

version: '2' 
services: 

postgres: 
    image: kartoza/postgis:9.5-2.2 
geoserver: 
    image: geonode/geoserver 
    hostname: geonode-geoserver 
    links: 
    - postgres:postgres 
    ports: 
    - "8181:8080" 

Я знаю, что с докеров сетей файл /etc/hosts не заполняется. Как включить доступ к базе данных из контейнера геосервера.

ответ

0

Вы должны использовать defined network для имен разрешиться без ссылок и использовать depends_on для Postgres, прежде чем начать GeoServer.

0

в изменении определения сервиса Geoserver:

  • Postgres: Postgres

к:

  • Postgres: kartoza/PostGIS: 9.5-2.2

You необходимо сопоставить имя службы с именем изображения

+0

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

+0

версии: '2' услуги: Postgres: изображения: kartoza/PostGIS: 9.5-2.2 Geoserver: изображения: geonode/Geoserver имени хоста: geonode -geoserver ссылки: - postgres: postgres ports: - "8181: 8080" – sophia