Я создал следующий Docker файлDocker объем воссоздает новый целевой путь каждый раз, когда
FROM resin/rpi-raspbian:jessie-20160831
..
RUN mkdir -p /usr/bin/asmp
COPY src /usr/bin/asmp/
VOLUME /usr/bin/asmp/data
..
В копировальном действии копирует структуру каталогов, как это:
data
db.sqlite3
web
...
worker
...
Я не просто запустить контейнер, используя что-то вроде этого:
docker run -p 8000:8000 asmp
Когда я инспектировать я вижу это:
"Mounts": [
{
"Name": "30ccc87580cd85108cb4948798612630640b5564f66de848a4e2f77db8148d3a",
"Source": "/var/lib/docker/volumes/30ccc87580cd85108cb4948798612630640b5564f66de848a4e2f77db8148d3a/_data",
"Destination": "/sys/fs/cgroup",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
{
"Name": "c4473031d209eb29d3f454be68325c6b1f33aa660185bf57e8abb91a56bb260e",
"Source": "/var/lib/docker/volumes/c4473031d209eb29d3f454be68325c6b1f33aa660185bf57e8abb91a56bb260e/_data",
"Destination": "/usr/bin/asmp/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
Когда я останавливаю контейнер (убивая его), а затем снова запускаю его, он создает новый том в другой каталог. Так что мне интересно, как справиться с этой ситуацией? Я запускаю/останавливаю контейнер неправильно? Или я должен указать объем по-разному? Я знаю, что вы можете указать целевой путь, но могу ли я (и должен ли я) указать это в файле докеров? Я скорее задаю настройки громкости в файле докеров, так как команда запуска уже имеет множество параметров для перенаправления портов и устройств.
Любые мысли?
Что, чем точка определения его в dockerfile, если вам все равно придется определить его в команде запуска? –
К сожалению, вы не можете определить его в Dockerfile. Позвольте мне показать вам [Dokerfile volume reference] (https://docs.docker.com/engine/reference/builder/#/volume) VOLUME ожидает только один аргумент, это может быть строка или массив строки, который содержит точки монтирования внутри контейнер. –
Давайте посмотрим на инструмент docker-compose (https://docs.docker.com/compose/overview/). Это позволяет писать файл конфигурации, когда вы можете определить все переменные для запуска контейнера. –