Demi44
@Demi44
System administrator, devops

Почему то docker не мапит каталоги в Windows 7?

Привет уважаемый All !
Столкнулся с ситуацией - есть настроенный и работающий пакет для docker-compouse и все хорошо работает в Linux. Но стала задача запустить все это в Windows 7/8/10. Docker в Windows я установил с помощью docker-toolbox и все вроде как собралось и запустилось, НО в docker-compose файле у меня есть настройки для мапинга разделов:

application:
           build: ./application
    volumes:
            - /с/user/company/master:/var/www

и для конкретного контейнера я подключаю раздел

workspace:
        build:
          context: ./workspace
        volumes_from:
            - application


После build + up -d по логике я захожу в контейнер:
docker exec -it workspace bash

И при попадании в /var/www должен увидеть содержимое виндового каталога /с/user/company/master (c:\user\company\master)
Но этого не происходит, по непонятной мне логике у меня или каталог пустой тупо, или если я указываю монтироваться на каталог выше - то у меня появляется пустой каталог master. Возможно я как то не так пути прописываю или для Windows нужны какие то особые заклинания и шаманства ?
  • Вопрос задан
  • 1759 просмотров
Решения вопроса 1
Demi44
@Demi44 Автор вопроса
System administrator, devops
В общем то решение вроде как простое оказалось, сложность дочитать документацию до нужного места, с учетом того что докер в винде это over виртуализация....
В общем то для нужных действий с монтированием шар необходимо учитывать что докер в винде 7 работает через virtualbox + обрезано-зарезанный линукс Tiny, а у же в этом виртальном linux собственно и работает docker. Необходимо учитывать что по дефолту VirtualBox монтирует c:\Users\ и уже через него докер будет обращаться к нужным каталоагам. После того как закинул интересующие меня данные в c:\Users -- передернул вируталку и перебилдил нужные образы - все появилось и заработало.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Т.к. под windows docker работает в vm, то ему нужны файлы внутри vm. Как вариант расшарить файлы во внутрь vm.
Ответ написан
Если работать из под докер толс (windows 7), то нужно в VirtualBox в настройках добавить общую папку отличную от C:\Users Ведь именно это и хотелось. При этом задать ей удобное имя и поставьте галочку авто подключение.
Например, папку "C:\projects" можно именовать "c/projects" (с/ - это для понимания на каком диске).
Всё это делается при остановленной докер машине. Другими словами, если запущена докер консоль, то:

docker-machine stop

А после выполнения настроек:

docker-machine start

Далее можно монтировать существующие папки внутри неё:

docker run -v /c/projects/<путь до монтируемой папки>:<папка в контейнере> <имя образа>
Ответ написан
Комментировать
@ddem
Создаю сайты и web-сервисы
Столкнулся с такой проблемой, конфиг nginx мапится как директория, а директория как пустая

nginx:
    image: nginx:1.15.0
    container_name: 'nginx'
    working_dir: /app
    ports:
      - '80:80'
    volumes:
      - /c/work/OSPanel/domains/docker/docker/nginx/nginx.conf:/etc/nginx/nginx.conf


Virtualbox по умолчанию монтирует папку /c/Users, помогло добавление всего диска в виртуалку
5c4964ab5b7b2958733064.png

Файл стал файлом
5c49651354787992273300.png

Папка стала папкой
5c4965d0d17d0566545441.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы