我正在使用docker-compose进行部署,使用2 docker-compose.yml安装程序,我在本地构build映像,并从服务器上的docker-compose.yml集线器中提取。
本地:
app: build: . volumes: - "./tmp/volume:/volume"
在服务器上:
app: image: username/repo:tag volumes: - "/data/volume:/volume"
在本地我的卷装载到指定的目录很好,由应用程序创build的文件保持在容器外。 但是,在部署服务器上,这不会发生。
但是,即使我的部署脚本运行docker-compose down -v ,这可能会删除容器上的命名&匿名卷,但是通过部署创build并保留文件。
我确定我做错了什么,但是我什么都看不到。
这里的服务器是AWS上的一个EC2节点,在docker守护进程启动后挂载一个EBS卷就成了一个问题。
基本上,docker在将卷挂载到/data之前预期文件系统,而文件实际上被写入到shadowed /data目录,但由于挂载而不可见。 这引起了我的警惕,主要是因为在最初创build容器之前,安装发生的时间很长。
因此,如果您在EC2节点上安装EBS卷,请在您希望容器能够访问这些卷的情况下重新启动docker服务。