有没有办法创建Docker卷并用数据预填充它?
我的目标是模拟硬盘或USB之类的东西,您可以预先填充数据,然后将其装载到特定的Docker容器中,并从该容器访问它。理想情况下,它应该提供选项,例如以只读模式安装 我尝试了Docker卷,得到的最接近的是作为卷装入的共享主机/容器目录,Docker compose文件如下所示:有没有办法创建Docker卷并用数据预填充它?,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我的目标是模拟硬盘或USB之类的东西,您可以预先填充数据,然后将其装载到特定的Docker容器中,并从该容器访问它。理想情况下,它应该提供选项,例如以只读模式安装 我尝试了Docker卷,得到的最接近的是作为卷装入的共享主机/容器目录,Docker compose文件如下所示: ... image: image-name container_name: container-name volumes: - ./data:/app/data ports: - "3000:3000" 有没有
...
image: image-name
container_name: container-name
volumes:
- ./data:/app/data
ports:
- "3000:3000"
有没有办法做到这一点,或者有没有更好的方法?谢谢。如果要在使用卷之前用数据填充卷,可以先创建它:
docker volume create myapplicationdata
然后将其连接到临时容器,以便用数据填充:
tar -C /path/to/my/files -c -f- . | docker --rm -i -v myapplicationdata:/data alpine tar -C /data -xv -f-
要使用docker compose.yml
中预先存在的卷,请将其声明为外部卷:
version: "3"
services:
myapplication:
image: image-name
container_name: container-name
volumes:
- myapplicationdata:/app/data
ports:
- "3000:3000"
volumes:
myapplicationdata:
external: true
为什么需要这个?您在问题中描述的主机目录设置有什么问题?