amazon-web-services - 将 AWS EFS 与 Docker 结合使用

我在我的单容器 EB 部署中使用亚马逊提供的新弹性文件系统。我不知道为什么挂载的 EFS 不能映射到容器中。

在/efs-mount-point 的主机上成功执行 EFS 挂载。

提供给Dockerrun.aws.json的是

{
  "AWSEBDockerrunVersion": "1"
  "Volumes": [
    {
      "HostDirectory": "/efs-mount-point",
      "ContainerDirectory": "/efs-mount-point"
    }
  ]
}

一旦开始运行,就会在容器中创建卷。但是,它映射了主机目录/efs-mount-point,而不是实际的 EFS 安装点。我不知道如何让 Docker 映射到挂载在/efs-mount-point 而不是主机目录的 EFS 卷中。

NFS 卷与 Docker 配合得好吗?

最佳答案

您需要 restart docker在主机 EC2 实例中挂载 EFS 卷之后。

这是一个例子,.ebextensions/efs.config:

commands:
   01mkdir:
      command: "mkdir -p /efs-mount-point"
   02mount:
      command: "mountpoint -q /efs-mount-point || mount -t nfs4 -o nfsvers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-fa35c253.efs.us-west-2.amazonaws.com:/ /efs-mount-point"
   03restart:
      command: "service docker restart"

https://stackoverflow.com/questions/38180665/

相关文章:

docker - 如何使用 Jenkins 管道在 docker 容器中安装 Jenkins 工作区

java - 如何减小我的 java/gradle docker 镜像大小?

mysql - 如何通过 SSH 连接到 MySQL Docker 容器?

docker - 如何基于现有镜像创建新的 docker 镜像?

linux - 如何删除所有 Docker 容器

docker - 证书是如何从 super 账本中 hfc-key-store 中真实的 fabri

node.js - node_modules 上的 docker-compose 卷但为空

bash - 如何在 ENTRYPOINT 等待 postgres 启动?

docker - 如何将端口从一个 docker 容器转发到另一个?

spring - Docker Compose + Spring Boot + Postgres 连