互联网技术 / 互联网资讯 · 2024年1月26日

Docker教程:在云计算核心技术Docker上集成ECS和Compose功能

日志

应用程序日志可以通过容器获取docker compose logs。Docker ECS 集成依赖 AWS CloudWatch Logs 从所有容器收集日志。CloudWatch 可以通过传递前缀为awslogs-.

test:

image: Mycompany/webapp

logging:

driver-opts:

awslogs-datetimE-pattern: “soMe-pattern”

暴露端口

当一个或多个服务公开端口时,将为应用程序创建一个负载均衡器。由于所有服务都通过同一个负载均衡器公开,因此只有一个服务可以公开给定的端口号。Compose 文件中定义的源端口和目标端口必须相同,因为服务到服务的通信不通过负载均衡器,并且无法从 Listeners 抽象中受益以分配不同的发布端口。

如果 Compose 文件中的服务仅公开端口 80 或 443,则会创建应用程序负载均衡器,否则 ECS 集成将提供网络负载均衡器。使用不同端口的 HTTP 服务可以通过x-aws-Protocol在端口声明中声明带有自定义扩展的 http 协议来强制使用 ALB :

test:

image: Mycompany/webapp

ports:

– target: 8080

x-aws-Protocol: http

持久卷

Docker 卷映射到 EFS 文件系统。卷可以是外部的(name然后必须设置为文件系统 ID),也可以在首次部署应用程序时创建。docker compose down不会删除文件系统,它将在以后运行时重新附加到应用程序。driver_opts可用于调整 EFS 文件系统。

无论用户配置为运行容器,都可以通过设置用于写入文件系统的用户和组 ID 来自定义卷挂载以解决 Posix 文件系统权限问题。

services:

MYservice:

image: Mycompany/webapp

volumes:

– Mydata:/Mount/testvolumes

volumes:

Mydata:

driver_opts:

performance-Mode: MaxIO

throughput-Mode: bursting

uid: 0

gid: 0

秘密

机密可以在撰写文件中定义,并且需要在撰写文件旁边的部署时可用的机密文件。秘密文件的内容将在选定的容器内可用,默认情况下在/Run/secrets/. 也支持外部机密,name然后必须将其设置为机密的 ARN

services:

Nginx:

image: Mycompany/webapp

secrets:

– MYsecret

secrets:

MYsecret:

file: ./My_secret1.txt

容器资源

CPU 和内存限制可以在 compose.yml 中设置。这些用于选择与这些限制匹配的最小Fargate 大小。

services:

Nginx:

image: Mycompany/webapp

deploy:

Resources:

Limits:

Cpu: ””0.5””

Memory: 2Gb

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册