【问题标题】:Why ecs creates volumes inside the container?为什么 ecs 在容器内创建卷?
【发布时间】:2019-06-08 04:13:30
【问题描述】:

我正在使用 ecs-cli 将我的 docker-compose.yml 部署到 ecs。

为什么当我定义卷 ecs-cli 在容器内而不是在 host-ec2-ami 中复制和创建文件/目录时?如何判断 html 必须在 host-ec2-ami-machine 上?

./appsy/dockerfile:

FROM nginx:latest

ADD ./index.html /content/index.html

./appsy/index.html:

<div> hello</div>

./docker-compose.yml

version: '3'
services:
  web:
    image: 0000000.dkr.ecr.us-east-2.amazonaws.com/appsy:latest
    volumes:
      - /content:/usr/share/nginx/html
    ports:
      - '80:80'

【问题讨论】:

    标签: amazon-web-services docker amazon-ecs


    【解决方案1】:

    如何判断 html 必须在 host-ec2-ami-machine 上?

    如果您想从容器内引用主机上的文件/目录,那么您尝试使用volumes 是正确的: 您的docker-compose.yaml 本质上是说“将主机/content 目录挂载到容器中的/usr/share/nginx/html 目录”。

    但是请注意,在这种情况下,将 index.html 复制到容器中(您在 Dockerfile 中执行的操作)没有任何意义...

    【讨论】:

    • 那么,如何使用 ecs-cli 命令将索引文件从我的本地机器复制到主机?可能吗?还是我应该手动复制文件?
    • 我认为ecs-cli 没有办法做到这一点。您应该有充分的理由尝试将文件复制到主机(如果您的集群由 >1 个节点组成 - 您不知道容器将登陆哪个节点......所以您必须将文件复制到所有的节点)。我建议在映像构建期间将index.html 直接复制到Dockerfile 中的/usr/share/nginx/html/。那时不需要卷安装。
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2018-04-18
    • 2012-02-03
    • 1970-01-01
    • 2011-02-18
    • 2020-01-08
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多