суббота, 28 февраля 2015 г.

Docker volumes

Концепция выделения хранилища из контейнеров и разделения хранилищ между контейнерами.
На данный момент концепция сырая и пользоваться ею означает, что мы привязываем наши контейнеры к конкретной хост-машине. Или же нам придется всегда предподготавливать хост-машины для горизонтального масштабирования(хотя это и так всегда я думаю нужно, но вопрос цены и трудозатрат всегда актуален).

Например создадим в стандартном месте отделенную директорию от контейнера, и примаунтим ее в контейнере в указанном месте:
docker run -it -v /test-vol --name=voltainer ubuntu:15.04 /bin/bash
--name - через эту директиву мы сами можем назвать наш контейнер, а не полагаться на генерацию от docker.
Теперь если мы отсоединимся от контейнера и воспользуемся docker inspect voltainer:
.......
   "Volumes": {
       "/test-vol": "var/lib/docker/vfs/dir/CONTAINERHASH"
    }
....  

А теперь мы можем разделить это хранилище с другим конейнером:
# docker run -it --volumes-from=voltainer ubuntu:15.04 /bin/bash

Мы также можем замаунтить хостовую директорию прямым указанием:
# docker run -v /data:/data


Нужно не забывать, если мы удаляем контейнер с хоста, то удаления вольюмов автоматически не происходит, для этого нам нужно поставить явную директиву:
# docker rm -v voltainer

Комментариев нет:

Отправить комментарий