【问题标题】:Is there an easy way to use host resources (eg. AWS-CLI) in a docker container?有没有一种简单的方法可以在 docker 容器中使用主机资源(例如 AWS-CLI)?
【发布时间】:2020-05-05 05:49:59
【问题描述】:

我有一个 docker 容器,里面有一些 Jupyter Notebook,这些笔记本会进行一些涉及与 AWS 交互的处理,例如向 S3 发送数据和从 S3 发送数据。

我是 docker 新手,想知道如何将这个容器中的数据发送到 S3。似乎有比在我的容器上安装 AWS-CLI 更简单的方法,因为它已经在我的主机笔记本电脑上安装和配置......但我知道什么!

如果这样做的标准方法是在我的容器上安装 AWS,我可以这样做,只是感觉多余。 谢谢

【问题讨论】:

  • 您可以在容器和主机笔记本电脑之间设置共享文件夹。因此,在容器中创建的所有文件也可以在您的主机笔记本电脑中使用。
  • 我更感兴趣的是直接向 AWS 发送文件,或者从我的容器中启动 EC2 实例。
  • 如果是这样,那么您可以为 Jupyter notebook (python kernel) 使用 boto3 sdk,或者为 AWS CLI 安装 bash kernelpython kernel 还可以让您访问 bash,因此您可以使用 aws cli,但与在 Jupyter 中运行完整的 bash kernel 相比,它是有限的。是的,在容器中安装 boto3 或 aws cli 是您通常的做法。如何将凭据传递给它的问题是另一回事。
  • Docker 的设计目标是容器不依赖于主机上是否存在特定程序,并且容器不能从主机窃取凭据。 (在 EC2 上下文中,容器可以访问 EC2 元数据服务并使用主机的 IAM 实例凭证。)容器设置需要完全独立,如果您在此处直接调用 AWS CLI,则需要安装它在图像中。

标签: amazon-web-services docker containers


【解决方案1】:

您应该将 AWS CLI 作为容器构建的一部分进行安装。

通过这样做,您可以确保应用程序需要运行的所有内容都在容器中运行,如果 AWS CLI 不在主机上,使用已安装的卷会导致问题。

【讨论】:

    猜你喜欢
    • 2022-10-13
    • 2020-10-04
    • 2010-09-12
    • 2020-09-16
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多