Назад | Перейти на главную страницу

tutum - docker: hosts файл не обновляется по ссылкам

Я использую tutum для развертывания приложения, которое включает веб-компоненты и компоненты db. Вот соответствующие части файла tutum.yml.

db:
  image: 'postgres:latest'
  ports:
    - '5432:5432'
  restart: always
  volumes_from:
    - data
web:
  image: 'rchamarthi/djangoweb:latest'
  command: 'bash -c ''python manage.py makemigrations && python manage.py migrate && /usr/local/bin/gunicorn django_project.wsgi:application -w 2 -b :8000'''
  expose:
    - '8000'
  links:
    - db
  restart: always
  volumes:
    - /usr/src/app/static
  working_dir: /usr/src/app/

Поскольку в Интернете есть ссылка на БД, я ожидаю, что сведения о хосте "db" будут добавлены в файл веб-контейнера / etc / hosts, но я ничего не вижу.

В веб-контейнере

# cat /etc/hosts                                                                
172.17.0.50     web-1                                                           
127.0.0.1       localhost                                                       
::1     localhost ip6-localhost ip6-loopback                                    
fe00::0 ip6-localnet                                                            
ff00::0 ip6-mcastprefix                                                         
ff02::1 ip6-allnodes                                                            
ff02::2 ip6-allrouters 

В контейнере БД

# cat /etc/hosts                                                                
172.17.0.49     db-1                                                            
127.0.0.1       localhost                                                       
::1     localhost ip6-localhost ip6-loopback                                    
fe00::0 ip6-localnet                                                            
ff00::0 ip6-mcastprefix                                                         
ff02::1 ip6-allnodes                                                            
ff02::2 ip6-allrouters  

В результате не удается подключиться к базе данных из веб-контейнера.

В соответствии с https://support.tutum.co/support/solutions/articles/5000012181-service-links, «Tutum поддерживает службу DNS, которая автоматически используется всеми контейнерами для разрешения имен хостов, как описано в этом документе». Предположительно, это вместо расположения файлов hosts, которым тутум может быть труднее динамически манипулировать. т.е. DNS можно обновлять в центральной точке без перезапуска всех контейнеров, которые к нему относятся.

У вас также будут переменные среды, которые вы можете использовать для поиска связанных служб, но обратите внимание, что http://docs.docker.com/userguide/dockerlinks/ рекомендует не использовать их для обновления при перезапуске контейнера.