docker - Docker卷偶尔安装得太晚,无法与其他容器共享文件

标签 docker amazon-ecs docker-volume sumologic

我有两个在ECS上运行的容器。一个容器是一个应用程序,它通过docker卷与第二个容器共享配置文件,第二个容器是Sumologic文件收集器,后者是通用日志记录容器。

我遇到的问题是,日志记录容器偶尔会收到错误Cannot find file /path/to/logging/file.json。发生这种情况的唯一原因是卷为空,因此应用程序容器无法及时将配置文件放入卷中。

在另一个容器尝试读取文件之前,如何获取应用容器以将文件放入卷中?

最佳答案

截至2019年3月,新的ECS功能可以解决此问题。目的是确保在应用容器启动之前不会启动日志记录容器(这意味着该应用容器已成功将其文件安装到该卷中)。

执行此操作的方法是在任务定义中使用dependsOn。例如如果您希望仅在启动容器foo之后启动容器,则可以

"dependsOn": [
   {
       "containerName": "foo",
       "condition": "START"
   }
]

进一步阅读:
  • https://aws.amazon.com/about-aws/whats-new/2019/03/amazon-ecs-introduces-enhanced-container-dependency-management/
  • 关于docker - Docker卷偶尔安装得太晚,无法与其他容器共享文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55939880/

    相关文章:

    docker - 为自己的 docker 注册表提供 dockerd 的 SSL 证书

    python - 在 VS Code 中将 Python linter 与 Docker 一起使用

    mongodb - 无法在 docker 容器中运行 Mongodb 守护进程

    amazon-web-services - 为什么在Service已在AWS中分配了任务定义的情况下,ECS管道需要“任务定义”?

    尝试挂载 blob 存储时出现容器错误的 azure webapp

    docker - Docker Volumes 中 -volume 和 -volumes-from 的区别

    docker - 如何忽略要在 docker build 上下文中发送的文件夹

    amazon-web-services - 如何对 ECS Fargate 上的容器进行故障排除?

    amazon-web-services - 创建和更新 ECS 服务的正确 DevOps 工作流程是什么?

    docker - 如何解决在 docker run 命令期间安装卷时权限被拒绝的问题?