【发布时间】:2017-02-01 15:03:43
【问题描述】:
我正在尝试在 Docker 上运行 ElasticSearch(实际上是在 AWS ECS 上)。如果我没有配置卷,它可以正常工作,但是每次我重新启动容器时,我都会丢失所有数据。 我不知道如何配置音量。
我尝试了什么:
- 在任务定义中我配置了卷“Name=esdata1”和“source path=/usr/share/elasticsearch/data”
- 在“存储和日志记录”部分的容器定义中,我配置了挂载点“source volume=esdata1”和“container path=/usr/share/elasticsearch/data”
现在,当我启动容器时,当 elasticsearch 尝试写入“/usr/share/elasticsearch/data”时,它会失败并出现错误“访问被拒绝”。所以在安全部分我配置了“user=ec2-user”,但是容器甚至不会启动(停留在“status=created”)。我应该怎么办?我猜这个问题是由于容器的用户必须与主机上的用户相同。主机上的用户是“ec2-user”,我不知道如何继续。
编辑:
docker inspect:
"Mounts": [
{
"Name": "elasticsearch_data",
"Source": "/var/lib/docker/volumes/elasticsearch_data/_data",
"Destination": "/usr/share/elasticsearch/data",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": "rprivate"
}
]
现在,如果我停止容器或重新启动主机,数据仍然存在。我唯一担心的是这个文件夹“/var/lib/docker/volumes/elasticsearch_data/_data”位于操作系统卷上,而不是更大的 docker 卷上。来自Aws doc:
2015.09.d 及更高版本的 Amazon ECS 优化 AMI 用于操作系统的 8 GiB 卷,附加在 /dev/xvda 并作为文件系统的根目录挂载。还有22个 Docker 用于映像的 /dev/xvdcz 附加的 GiB 卷 和元数据存储。卷配置为逻辑卷 管理 (LVM) 设备,它由 Docker 通过 devicemapper 后端。
如何在 /dev/xvdcz 上保存数据?
非常感谢
【问题讨论】:
标签: amazon-web-services elasticsearch amazon-ecs