如何在ECS Fargate中访问Docker容器?

0

【以下的问题经过翻译处理】 客户想要使用ECS fargate,但同时也希望偶尔灵活地进入容器中执行操作。我理解这与fargate的初衷完全相反。但是,在fargate中有哪些跟踪配置的选项呢?在应用程序跟踪方面,我们有X-Ray,但对于Docker容器的配置和依赖项设置,我们有什么呢?

profile picture
专家
已提问 5 个月前13 查看次数
1 回答
0

【以下的回答经过翻译处理】 这是可能的,但为什么要这样做呢?

在许多情况下,开发人员选择构建最小可能的容器,其中映像不包含任何shell二进制文件。

例如,开发人员决定构建一个Go应用程序,并将所有依赖项链接到二进制文件中。他可以使用scratch基础(https://hub.docker.com/_/scratch)构建此映像,这将创建仅包含二进制文件和指向执行此二进制文件的指针的Docker容器。

同时,还有其他项目使用scratch来构建其他基础镜像,如Debian,busybox,这些镜像将包含用于执行的shell访问和其他库依赖项,与前面的示例相比,容器映像会更大。

因此,在Docker中有Ubuntu、Debian等许多容器映像,我们应该将它们用于工作负载吗?如果是生产工作负载,我建议将容器最小化,仅包含所需的组件,这将占用更少的磁盘空间,引导时间会更短,因为容器映像更小,并且不会提到没有任何shell二进制文件或其他应用程序不使用的组件,将会大大降低容器应用程序的远程漏洞的机会。

但我应该在哪里运行这些Linux发行版映像?也许当您在桌面上开发软件或需要在多个Linux发行版版本中测试某些桌面应用程序时,您可以拥有一系列容器映像来在其中的所有测试中运行,无需使用VM或物理服务器。

这是你的客户案例吗?在他需要测试的地方构建桌面应用程序?也许即使他需要测试这样的应用程序,他也可以运行自动脚本来执行命令,并在日志中返回结果。如果是这样的话:我的客户需要了解应用程序中发生的事情,并在出现问题时进行调试。在这种情况下,建议的方法是启用应用程序日志记录(每种语言都提供一个日志库,如果没有,一个简单的打印语句可以将日志输出到stdout或stderr,所有这些输出都可以被Cloudwatch捕获并流式传输到Cloudwatch日志中进行查看。

如果问题是内存利用率、临时文件等,我只需要添加一个环境变量来设置日志的详细级别,并包括日志记录语句,以便在日志中输出此类事件进行分析。

嗯,你的客户可以采用很多技巧来避免在应用程序中使用shell。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则