Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在具有不同启动类型和卷装载的AWS ecs中,使用docker-compose.yml和ecs-params.yml文件运行多任务定义_Amazon Web Services_Docker Compose_Aws Cli_Amazon Ecs_Elastic Container Registry - Fatal编程技术网

Amazon web services 在具有不同启动类型和卷装载的AWS ecs中,使用docker-compose.yml和ecs-params.yml文件运行多任务定义

Amazon web services 在具有不同启动类型和卷装载的AWS ecs中,使用docker-compose.yml和ecs-params.yml文件运行多任务定义,amazon-web-services,docker-compose,aws-cli,amazon-ecs,elastic-container-registry,Amazon Web Services,Docker Compose,Aws Cli,Amazon Ecs,Elastic Container Registry,我有4个docker镜像,我想在ECS上运行。对于我的本地系统,我使用docker compose文件,其中我有多个服务 我想在ECS上做类似的docker编写 我希望我的数据库映像在EC2上运行,在fargate上休息,在EC2上托管数据库卷,并确保每个容器都可以使用它们的名称彼此通信。 如何配置docker-compose.yml和ecs-param.yml文件 我的示例docker-compose.yml文件 version: '2.1' services: first: im

我有4个docker镜像,我想在ECS上运行。对于我的本地系统,我使用docker compose文件,其中我有多个服务

我想在ECS上做类似的docker编写

我希望我的数据库映像在EC2上运行,在fargate上休息,在EC2上托管数据库卷,并确保每个容器都可以使用它们的名称彼此通信。 如何配置docker-compose.yml和ecs-param.yml文件

我的示例docker-compose.yml文件

version: '2.1'
services:
  first:
    image: first:latest
    ports:
      - "2222:2222"
    depends_on:
       database:
        condition: service_healthy

  second:
    image: second:latest
    ports:
      - "8090:8090"
    depends_on:
       database:
        condition: service_healthy

  third:
    image: third:latest
    ports:
      - "3333:3333"

  database:
    image: database
    environment:
      MYSQL_ROOT_PASSWORD: abcde
      MYSQL_PASSWORD: abcde
      MYSQL_USER: user
    ports:
      - "3306:3306"
    volumes:
      - ./datadir/mysql:/var/lib/mysql
    healthcheck:
            test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
            timeout: 5s
            retries: 5
  • 我不知道如何将容器相互连接。
    取决于
    只告诉Docker何时编写要使用的订单 容器已启动。
    您可能在容器中硬编码了实际连接,这不好
  • 假设Docker Compose文件共享容器可以到达每个 其他人使用他们在撰写文件中的别名。
    例如,
    third
    容器可以使用
    数据库
    域名来访问
    数据库
    容器。
    因此,如果您在容器中硬编码了这样的名称,它将起作用。然而 通常人们将连接点(URL)配置为中的环境变量 Docker编写文件。在这种情况下,没有硬编码

  • 在EC2上托管DB卷可能不是个好主意。
    EC2有两种类型的存储映射—EBS和实例(基于S3)。实例 EC2实例终止时,存储被销毁。EBS在服务器上保留数据 EBS始终。
    因此,您要么使用EBS存储(而不是EC2),要么使用不适合您的应用程序的S3 需要在这里

  • 在容器中托管数据库是一个非常糟糕的主意。
    您可以在Docker Hub中的许多DB映像的描述中找到相同的信息。
    相反,您可以使用

  • 您现在遇到的问题与AWS和ECS没有任何共同之处 现在。
    当Docker Compose在本地正常运行时,您将 在ECS端得到同样的结果

  • 您可以通过Compose文件查看配置示例