как обмениваться данными между docker контейнером и хостом - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю над прочтением документации, где я использую docker. Чтобы настроить его, я хотел бы поделиться папкой css между контейнером и хостом, чтобы не создавать всегда новый образ для просмотра изменений. Цель состоит в том, чтобы я мог просто обновить sh браузер и увидеть изменения.

Я пробовал что-то подобное, но это не работает:

docker run -v ~/docs/source/_static/css:/docs/source/_static/css -p 80:80 -it my-docu:latest

Что не так в этой команде?

Путь к папке, которой я хотел бы поделиться:

Documents/my-documentation/docs/source/_static/css

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

У меня нет ma c для тестирования, но я подозреваю, что команда должна быть такой, как указано ниже (Documents - это подпапка внутри вашего домашнего каталога, обозначенная ~)

docker run -v ~/Documents/my-documentation/docs/source/_static/css:/docs/source/_static/css -p 80:80 -it my-docu:latest

В вашем OP вы монтируете папку хоста ~/docs/source/_static/css, которая не имеет смысла, если ваши файлы находятся в Documents/my-documentation/docs/source/_static/css, поскольку это соответствует ~/Documents/my-documentation/docs/source/_static/css

Имейте в виду, что Docker все еще работает внутри ВМ на Ma c, поэтому вам нужно будет указать путь к хосту, который действителен на этой ВМ

. Чтобы получить более полное представление о ситуации, вы можете запустить интерактивный контейнер, в котором вы монтируете root файловая система хоста vm root в /mnt/vm-root. Таким образом, вы можете видеть, какие пути доступны для монтирования и как они должны быть отформатированы, когда вы передаете их, используя флаг -v команде docker run

docker run --rm -it -w /mnt/vm-root -v /:/mnt/vm-root ubuntu:latest bash
0 голосов
/ 24 апреля 2020

Я предполагаю, что ~ не разрешается правильно. Символ тильды ("~") относится к домашнему каталогу вашего пользователя; обычно что-то вроде /home/your_username.

В вашем случае, похоже, что вашего документа нет в этом каталоге.

Попробуйте:

docker run -v Documents/my-documentation/docs/source/_static/css:/docs/source/_static/css -p 80:80 -it my-docu:latest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...