воскресенье, 19 февраля 2017 г.

Voluming with Docker-compose

Можно маунтить вольюмы в режиме только чтение(:ro):
version: '2'
services:
  nginx:
    image: nginx
    volumes:
      - ./cong.d:/etc/nginx/conf.d/:ro
    ports:
      - 80
Кстати, когда мы не указываем к какому именно порту примаунтить выставленный из контейнера порт, он маунтится на случайный свободный. Чтобы увидить на какой именно порт он выставился:
$ docker-compose port nginx 80
0.0.0.0:32769

Именованные томы(named volumes)

Так мы маунтим не к относительному/абсолютному пути на локальной машине место в контейнере, а к "диску/тому", который мы будем делить между несколькими контейнерами, что позволит нам разумно использовать емности физического диска, а также позволим докер-демону позаботся самому где это место будет находится в реальной файловой системе, так мы убираем проблему запуска кластера на серверах где нет исходников для сборки, а только одна возможность сказать образы с реджистри.
version: '2'
services:
  worker:
    image: tutum/hello-world
    volumes:
      - results:/results
  reposrting:
    image: tutum/hello-world
    volumes_from:
      - worker:ro

volumes:
  results:

Ну и конечно же мы можем подключать внешние томы, согданные вне компоуза
$ docker volume create --name images --driver=local

version: '2'
services:
  resizer:
    image: tutum/hello-world
    volumes:
      - images:/images:rw

volumes:
  results:
    external: true

Чудесный прием для теста, согдать контейнр с образа, увидить то, что было нужно и удалить его после закрытия
$ docker-compose up -d
Creating network "0404_default" with the default driver
Creating 0404_resizer_1
$ docker-compose exec resizer ls /images
$ docker-compose exec resizer touch /images/pic.jpg
$ docker run --rm -v images:/images tutum/hello-world ls /images
pic.jpg
Кстати как и в случае с сетями, так и с дисками мы можем установить COMPOSE_PROJECT_NAME системную переменную или --project-name ключ, чтобы получать отличное от имени текущей директории.

Плагины

Позволяют томами подключать Asure, AWS S3  и другие.

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

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