Мое требование - создать образ докера, используя данные в каталоге хоста. И когда я запускаю контейнер, данные, полученные в контейнере, должны быть скопированы обратно в каталог хоста. Проще говоря, постоянство данных.
Вот как я собираю и запускаю контейнер (это работает):
Сборка и создание Docker, запускает контейнер с данными в расположении хоста (все в порядке)
#!/bin/bash
sudo docker build -t myimage:latest . && > /dev/null
sudo docker create -p 8080:8080 -v host/data/location:/etc/container/data/location --name mycontainer myimage:latest && > /dev/null
Запустить контейнер и скопировать данные обратно на хост для постоянного хранения.
#!/bin/bash
#start container
sudo docker start mycontainer && > /dev/null
#copy data on exit
sudo docker cp mycontainer:/etc/container/data/location/. `pwd`/host/data/location/ && > /dev/null
Я знаю, что лучший способ - это подключить тома, но при копировании данных обратно на хост он не удалсяиз контейнера. И я хочу избавиться от шага копирования.
Это должно работать,
docker create -p 8080:8080 -v /host/data/location:/etc/container/data/location --name mycontainer myimage:latest
, но это не так! Может кто-нибудь сказать причину?