我正在尝试使用 ECS + EFS(个人站点的 MySQL)进行 POC,但是 docker 中已安装卷的文件更改不会进入 EFS。
我将它安装在容器主机上:
us-east-1a.fs-#####.efs.us-east-1.amazonaws.com:/ on /mnt/mysql-data-docker type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.128,local_lock=none,addr=10.0.0.90)
我的任务定义(相关部分)显示:
"mountPoints": [
{
"containerPath": "/var/lib/mysql",
"sourceVolume": "mysql-data",
"readOnly": null
}
]
和
"volumes": [
{
"host": {
"sourcePath": "/mnt/mysql-data-docker"
},
"name": "mysql-data"
}
],
我可以在那里写一个文件,终止主机,让新主机通过扩展组出现并挂载,并且文件仍然存在,所以我知道它正在工作(并且 EFS 在该 FS 上显示 12kb 而不是 6kb)。
查看正在运行的 MySQL 容器:
[ec2-user@ip-10-0-0-128 ~]$ docker inspect e96a7 | jq '.[0].Mounts'
[
{
"Source": "/mnt/mysql-data-docker",
"Destination": "/var/lib/mysql",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
/mnt/mysql-data-docker
在主机上只显示我验证过的测试文件。在容器中,有一堆东西,/var/lib/mysql
但它永远不会到达主机或 EFS。