我正在使用docker进行部署,在其中我在本地构建映像,并从服务器上的docker-compose.yml
集线器中提取映像。
当地:
app:
build: .
volumes:
- "./tmp/volume:/volume"
在服务器上:
app:
image: username/repo:tag
volumes:
- "/data/volume:/volume"
在本地,我的卷挂载到指定的目录,由应用程序创建的文件保存在容器外。然而,在部署服务器上,这种情况不会发生。
但是,尽管我的部署脚本运行的是docker-compose down -v
,但文件是通过部署创建和持久化的,该脚本可能会删除容器上的命名和匿名卷。
我肯定我做错了什么,但我看不出是什么。
发布于 2016-10-27 15:28:37
这里的服务器是AWS上的一个EC2节点,结果发现这是在码头守护进程启动后挂载EBS卷的一个问题。
实际上,docker在将卷挂载到/data
之前就期望文件系统,而文件实际上被写入隐藏的/data
目录,但由于挂载,文件是不可见的。这让我措手不及,主要是因为安装在部署之前很久就开始创建容器了。
因此,如果您在EC2节点上挂载EBS卷,如果您希望容器能够访问这些卷,请重新启动对接器服务。
https://serverfault.com/questions/810242
复制相似问题