Pull to refresh

Comments 14

Нет, если пробросить сокет docker внутрь контейнера, это не даст docker-in-docker, потому что создаваемые контейнеры будут не child, а sibling. Чтобы контейнеры были вложенными, нужно сам dockerd запустить внутри контейнера, тогда сокет внутри будет свой собственный.

Спасибо за ценное уточнение! Да, монтирование сокета родительского docker внутри контейнера даёт очень похожий эффект, но это не полный docker-in-docker. Обязательно учтём этот момент в наших учебных материалах.

Не раскрыт вопрос директивы VOLUME для чего она нужна, когда надо использовать, а когда нет

Это отличное замечание, спасибо. Обязательно раскроем подробнее на онлайн-интенсиве.

Интересно было бы узнать про объем volume и как им управлять, столкнулся с тем, что большие файлы больше нескольких гиг не записываются в докер (snapdrop.io) в общем не знаю, как исследовать эту проблему.

Увы, сам с такими проблемами не сталкивался. Могу только посоветовать посмотреть в сторону параметра запуска docker-демона
dm.basesize
, по умолчанию это 10Гб и его можно увеличить, например отредактировав systemd-юнит. docs.docker.com/engine/reference/commandline/dockerd

Вроде этот параметр про размеры конейнера, томов не касается. Но могу ошибаться.

Так точно. И только при использовании хранения devicemapper

Подскажите, как правильно использовать NFS-хранилища.


Есть NFS-шара nas:/share/docker, которая примонтирована в папку /mnt/nas на хосте. В этой шаре созданы следующие папки: nas:/share/docker/node01/conf и nas:/share/docker/node01/data.


В docker-compose.yml эти папки примонтированы таким образом:


services:
  node01:
    image: ...
    container_name: ...
    volumes:
      - /mnt/nas/node01/conf:/app/conf
      - /mnt/nas/node01/data:/app/data

Хочется убрать NFS с хоста и перенести подключение в сам контейнер. Прописываем в .yml описание тома:


volumes:
  nfs-nas-docker:
    driver: local
    driver_opts:
      type: "nfs"
      o: "addr=nas,rw,vers=4.1,noatime,rsize=65536,wsize=65536,tcp,timeo=14"
      device: ":/share/docker/"

Но я так понимаю, что отдельные папки из этого тома мы не сможем монтировать в /app/conf и /app/data?
Как правильно поступать в таких ситуациях?

В вашем случае можно сделать два тома, просто подключить в них разные каталоги с одной NFS-шары. Должно работать примерно так у вас:
volumes:
  nfs-nas-docker-conf:
    driver: local
    driver_opts:
      type: "nfs"
      o: "addr=nas,rw,vers=4.1,noatime,rsize=65536,wsize=65536,tcp,timeo=14"
      device: ":/share/docker/conf"

А ещё есть вот такой плагин для Docker: github.com/ContainX/docker-volume-netshare, правда видно что он не в активной разработке, поэтому я бы не использовал его для критичных задач.
>запущенного из образа Ubuntu 15.04.
Статья 2015 года?

Обожаю эту схему из документации.



Идеальный пример поясняющей картинки, которая вообще ничего не пояснит новичку и в то же время иллюстрирует очевидное для чуть более опытного специалиста. Абсолютно непонятно на кого она ориентирована.

Вынужден согласиться, потому что без пояснений (я проверял на днях на одном студенте) эта диаграмма «ни о чем»

Если бы еще писали команды, сложные примеры использования, best practices для каждого пункта, то статье цены бы не было. А то получается, что общими словами описание дали, а подробности опять в английской документации искать. Что увеличивает время изучения материала в 2-3 раза.

Sign up to leave a comment.