我正在尝试构建Apache WebDAV私有云服务器。
我所有的文件都在/ usr / John /目录中,我可以将该位置挂载到供容器使用的位置。问题在于,我还将通过该服务器添加新文件,但是无论如何,它们都只保留在容器中。有没有办法在主机目录(/ usr / John /)中也反映相同的新文件?
我可以经常性地进入这个容器并将所有文件CP到主机目录,但这不是一个很好的解决方案。
答案 0 :(得分:0)
使用Docker卷。容器生成的所有持久性数据将保存到var/lib/docker/volumes
。如果您使用的是docker-compise,则可以执行以下操作。这里有3卷,我将其命名为tomcat-data
,host-upload
,tomcat-webapps
。我在tomcat-data
,/home/foo/upload
和/usr/local/tomcat/webapps
中放入的所有数据都将存储在var/lib/docker/volumes
内部的主机上。因此,即使容器发生故障并启动另一个容器,这些目录中的所有数据也将保留。如果您有任何疑问,请告诉我。
您还可以将装载主机目录直接绑定到docker容器上。让我知道您是否有任何疑问
version: '3.2'
services:
tomcat:
image: "ciena/tomcat"
volumes:
- tomcat-data:/tomcat-data
- host-upload:/home/foo/upload
- tomcat-webapps:/usr/local/tomcat/webapps
ports:
- target: 8080
published: 8080
protocol: tcp
mode: ingress
- target: 2222
published: 22
protocol: tcp
mode: ingress
environment:
- JAVA_MIN_HEAP=256m
- JAVA_MAX_HEAP=512m
deploy:
placement:
constraints:
- node.role == manager
replicas: 1
resources:
limits:
memory: 1024M
cpus: '0.5'
reservations:
memory: 512M
cpus: '0.001'
restart_policy:
condition: any
delay: 5s
max_attempts: 3
window: 60s
volumes:
tomcat-data:
host-upload:
tomcat-webapps:
networks:
default: