Amazon web services 在具有不同启动类型和卷装载的AWS ecs中,使用docker-compose.yml和ecs-params.yml文件运行多任务定义
我有4个docker镜像,我想在ECS上运行。对于我的本地系统,我使用docker compose文件,其中我有多个服务 我想在ECS上做类似的docker编写 我希望我的数据库映像在EC2上运行,在fargate上休息,在EC2上托管数据库卷,并确保每个容器都可以使用它们的名称彼此通信。 如何配置docker-compose.yml和ecs-param.yml文件 我的示例docker-compose.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
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何时编写要使用的订单
容器已启动。您可能在容器中硬编码了实际连接,这不好
例如,
third
容器可以使用数据库
域名来访问
数据库
容器。因此,如果您在容器中硬编码了这样的名称,它将起作用。然而 通常人们将连接点(URL)配置为中的环境变量 Docker编写文件。在这种情况下,没有硬编码
EC2有两种类型的存储映射—EBS和实例(基于S3)。实例 EC2实例终止时,存储被销毁。EBS在服务器上保留数据 EBS始终。
因此,您要么使用EBS存储(而不是EC2),要么使用不适合您的应用程序的S3 需要在这里
您可以在Docker Hub中的许多DB映像的描述中找到相同的信息。
相反,您可以使用
当Docker Compose在本地正常运行时,您将 在ECS端得到同样的结果