gpt4 book ai didi

docker - AWS ECS任务:将卷装载到我的容器中会清除我复制的文件

转载 作者:行者123 更新时间:2023-12-02 20:47:35 25 4
gpt4 key购买 nike

我正在尝试使用持久性存储来运行任务。该任务执行一个docker镜像,该镜像创建一个目录并将文件复制到其中。但是,当任务定义将卷装载到创建的目录时,该文件将丢失。

为简便起见,Dockerfile的相关行为:

RUN mkdir /root/createdDir
COPY ./myFile.txt /root/createdDir/myFile.txt

任务定义JSON的相关字段为:
{
"containerDefinitions":[
{
...,
"mountPoints": [
{
"readOnly": null,
"containerPath": "/root/createdDir",
"sourceVolume": "shared"
}
],
"image": "myImage"
}]
"volumes": [
{
"name": "shared",
"host": {
"sourcePath": null
}
}]
}

运行任务时,无法再找到该文件。如果我在未向容器添加安装点的情况下运行任务,则该文件仍然存在。

当尝试使用 docker-compose在本地执行此操作时,我可以使用相同的 Dockerfile,并在 docker-compose.yml文件中向服务卷添加以下规范: shared:/root/createdDir,其中shared是也在 docker-compose.yml中使用本地驱动程序声明的卷。

最佳答案

将卷安装到容器上的现有目录中的行为可能会造成混淆。这与Linux的mount的一般行为一致:

The previous contents (if any) and owner and mode of dir become invisible.



尽可能避免这样做,因为当卷和容器具有相同名称的文件时,这可能会导致难以发现的问题。

关于docker - AWS ECS任务:将卷装载到我的容器中会清除我复制的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49460848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com