2015-12-08 3 views
2

Совместное использование данных между контейнером для докеров и моим хостом (на AWS) кажется слишком сложным. Из документации docker кажется, что мне нужно указать тома, когда я запускаю контейнер.Совместное использование каталогов в контейнере Docker как с файлом Docker, так и после запуска контейнера

Я нашел это: https://github.com/synack/docker-rsync Но эти часы рекурсивно скопировать только от хозяина машины в контейнер Docker

Я ищу способ создания (предпочтительно в Dockerfile) папку видимой на моем хосте машина на AWS, где я могу scp файлов в эту папку, и они будут видны на моем контейнере докера. Я также ищу свое изображение докеры, чтобы иметь возможность писать в эту папку, поэтому, если контейнер остановлен, я не потеряю эти файлы.

Как примечание стороны, я уже заявил в своем Dockerfile к VOLUME/Training-мастер , но я не знаю, как получить к нему доступ из моей машины, и когда я остановил контейнер я потерял данные.

Кто-нибудь знает, как это сделать, или они могут указать мне в правильном направлении?

ответ

0

То, что вы ищете, предоставляется опциями времени докеров. Документально здесь: http://docs.docker.com/engine/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume

В конце, его четко упоминается

Note: The host directory is, by its nature, host-dependent. 
For this reason, you can’t mount a host directory from Dockerfile 
because built images should be portable. A host directory wouldn’t 
be available on all potential hosts. 
0

Как Raghav сказал диск не может быть создана и совместно с Dockerfile из-за портативности изображения.

Но после создания изображения вы можете запустить эту команду, и это создаст общую папку между хостом и докером. Будьте осторожны, потому что вы можете Обзор каталога в контейнере Docker, если он имеет такое же имя, как существующую папку:

$ sudo docker run -itd -v /home/ubuntu/Sharing dockeruser/imageID:version bash 

/home/ubuntu/Sharing - путь к обмену папку на хост-компьютере

/Share - Путь к папке обмена в моем контейнере

dockeruser/imageID:version - имя вашего контейнера

- определяет, вы создаете объем

-d - daemonizes в containe, ставит его в фоновом режиме

bash - команда для контейнера для выполнения

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