2014-12-12 2 views
0

отредактированный для ясностиМонтаж локальных томов докер контейнера

Я запускать следующую команду пуска

docker run -d -P -v /users/username/app:/app contname 

This resulsts в следующий, когда я проверить контейнер

"HostConfig": { 
     "Binds": [ 
      "https://stackoverflow.com/users/username/app:/app" 
     ], 

"Volumes": { 
     "/app": "https://stackoverflow.com/users/username/app", 
     "/app": "/mnt/sda1/var/lib/docker/vfs/dir/214a16c3678f93cbadb7e7b7d56b5f26b66a34c6d9bb89ade23b16e386a12212" 
    }, 

Но когда я SSH в контейнер, я вижу, что приложение пустое.

Является ли мое предположение, что должны быть файлы с моей главной машины правильно?

ответ

0

Boot2docker автоматически монтирует ваш домашний каталог в виртуальную машину boot2docker VM, а не в контейнер. Вам все равно нужно добавить -v /users/username/app:/app в команду запуска docker.

Когда вы добавляете команду Volume в файл докера, вы объявляете том, создаваемый контейнером. Этот том устанавливается на /var/lib/docker/volumes на виртуальной машине хоста. Эти тома можно использовать только при передаче --volumes-from в команду запуска docker. Когда вы передаете ключ -v, вы создаете том, используя указанное место в файловой системе хоста.

+0

поэтому мне не нужно указывать тома, если я просто хочу зеркалировать папку моего dev? Все, что я должен сделать, запускает контейнер с флагом -v и папкой, которую я хочу зеркалировать? – Ditlev

+0

Да, я отредактировал ответ, чтобы сделать его более понятным. -v также является средством указания тома, он просто отображает конкретный каталог в качестве этого тома. –

Смежные вопросы