2016-06-04 4 views
2

Предположим, у нас есть простой стек веб-приложений, что-то вроде того, что описано в документах docker-compse. Его docker-compose.yml выглядит следующим образом:Как разместить контейнер докеров для базы данных на другом хосте в производстве?

version: '2' 
services: 
    db: 
    image: postgres 
    web: 
    build: . 
    command: python manage.py runserver 0.0.0.0:8000 
    volumes: 
     - .:/code 
    ports: 
     - "8000:8000" 
    depends_on: 
     - db 

Это отлично подходит для развития на ноутбуке. В производстве, однако, было бы полезно потребовать, чтобы контейнер db находился на своем собственном хосте. Учебники Я могу найти использование docker-swarm для масштабирования веб-контейнера, но не обращайте внимания на то, что экземпляр db и один экземпляр web работают на одном компьютере.

Возможно ли, чтобы конкретный контейнер находился на собственной машине (или даже лучше, на конкретной машине), используя docker? Если да, то как? Если нет, что такое докерный способ работы с базой данных в многоконтейнерных приложениях?

ответ

1

На мой взгляд, базы данных располагаются на краю контейнера, они полезны для разработки и тестирования, но производственные базы данных часто не очень эфемерны или переносимы по своей природе. Flocker Конечно, помогает как масштабируемые типы баз данных, такие как Cassandra, но базы данных могут иметь очень специфические требования, которые могут быть лучше обработаны как служба, которая находится за вашим контейнерным приложением (RDS, Cloud SQL и т. Д.).

В любом случае вам понадобится инструмент оркестровки контейнеров.

Вы можете применить manual scheduling constraints к Compose + Swarm, чтобы диктовать хозяин докера, на котором может работать контейнер. Для вашей базы данных, вы можете иметь:

environment: 
    - "constraint:storage==ssd" 

В противном случае вы можете настроить более статичной среды Docker с Ansible, Chef, Puppet

Используйте другой инструмент оркестровки, который поддерживает докер: Kubernetes, Mesos, Nomad

Использование контейнерных услуг: Amazon ECS, Docker Cloud/Tutum

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

  • Нет связанных вопросов^_^