如何在 docker 图像中包含体积数据
How can i include volume data in docker image
我有 docker 从文件创建的图像 (mybase) 有两个卷
# set volume mount points for installation and home directory
VOLUME ["/usr/local/data", "/var/local/data"]
现在我想要新的生产图像,它将把数据作为图像的一部分,这样我就可以拉它了。但我不知道如何访问该数据。
我想做这样的事情。这将是我的新 Dockerfile for prod
,它将根据当前
创建图像
FROM mybase
ADD /usr/local/data:/usr/local/data
但是那个目录不在主机上所以我不知道如何添加它
我遇到了同样的问题,最后决定备份和恢复the way they describe in the documentation:
要备份:
sudo docker run --volumes-from dbdata-prod \
-v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
...并恢复...
sudo docker run --volumes-from dbdata-test \
-v $(pwd):/backup busybox tar xvf /backup/backup.tar
根据数据的性质,您可能还会将其视为图像的一部分。在这种情况下,您可以将这些文件与图像一起携带。您可以将其构建为基础映像和特定构建的映像,该构建将构建在可以访问所需文件的主机上(例如 CI 构建节点):
FROM mybase
ADD <source of installation> /usr/local/data
ADD <source of the home data> /var/local/data
这个新镜像(可能根据构建进行版本控制)将与 /usr/local/data
和 /var/local/data
的内容一起被拉到目标环境中。
当 运行 在环境(生产)上时,如果需要,您可能仍会使用数据容器技术:
docker run --it -v /usr/local/data -v /var/local/data --name my_app_data_container <my_repo>/<my_app>:<build> /bin/false
docker run -d --volumes-from my_app_data_container --name my_app_daemon <my_repo>/<my_app>:<build>
我有 docker 从文件创建的图像 (mybase) 有两个卷
# set volume mount points for installation and home directory
VOLUME ["/usr/local/data", "/var/local/data"]
现在我想要新的生产图像,它将把数据作为图像的一部分,这样我就可以拉它了。但我不知道如何访问该数据。
我想做这样的事情。这将是我的新 Dockerfile for prod
,它将根据当前
FROM mybase
ADD /usr/local/data:/usr/local/data
但是那个目录不在主机上所以我不知道如何添加它
我遇到了同样的问题,最后决定备份和恢复the way they describe in the documentation:
要备份:
sudo docker run --volumes-from dbdata-prod \
-v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
...并恢复...
sudo docker run --volumes-from dbdata-test \
-v $(pwd):/backup busybox tar xvf /backup/backup.tar
根据数据的性质,您可能还会将其视为图像的一部分。在这种情况下,您可以将这些文件与图像一起携带。您可以将其构建为基础映像和特定构建的映像,该构建将构建在可以访问所需文件的主机上(例如 CI 构建节点):
FROM mybase
ADD <source of installation> /usr/local/data
ADD <source of the home data> /var/local/data
这个新镜像(可能根据构建进行版本控制)将与 /usr/local/data
和 /var/local/data
的内容一起被拉到目标环境中。
当 运行 在环境(生产)上时,如果需要,您可能仍会使用数据容器技术:
docker run --it -v /usr/local/data -v /var/local/data --name my_app_data_container <my_repo>/<my_app>:<build> /bin/false
docker run -d --volumes-from my_app_data_container --name my_app_daemon <my_repo>/<my_app>:<build>