当前位置: 首页 > 知识库问答 >
问题:

如何从主机工作站获取 aws 凭证,位于 docker 容器内

贺宜修
2023-03-14

我正在尝试将我的 AWS 凭证放入我的 Docker 容器中,以便在本地使用(用于开发)。我找到了这篇文章,https://cameroneckelberry.co/words/getting-aws-credentials-into-a-docker-container-without-hardcoding-it,但我不知道如何“创建AWS shell脚本”或什么是-profile。我在我的系统上看不到它。是的,我确实安装了 AWS CLI,并且还已将AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY放入 .env 文件中。我还根据请求将我的凭证放入$home/.aws/凭证中,但看不出这对 env 变量有何影响。从文章中:

运行$ aws help,我们看到有一个–profile参数。利用这一点,我们可以编写一个shell脚本来将我们的凭证放入Docker容器。

AWS _ ACCESS _ KEY _ ID = $(AWS-profile默认配置获取AWS _ ACCESS _ KEY _ ID)AWS_SECRET_ACCESS_KEY = $(AWS-profile默认配置获取AWS _ SECRET _ ACCESS _ KEY)

泊坞窗构建 -t my_app .docker run --rm \ -e AWS_ACCESS_KEY_ID=$AWS_访问_密钥_ID \ -e AWS_SECRET_ACCESS_KEY=$AWS_秘密_访问_密钥

如果有人能确切地解释该怎么做,就像对孩子说话一样,我将不胜感激。

共有1个答案

陈朗
2023-03-14

我认为最简单的方法是在展示如何将本地容器与 AWS 服务(例如本地 AWS Glue)结合使用时,执行 AWS 正在做的事情。也就是说,它们使用卷选项以只读模式与泊坞站容器共享 ~/.aws/

-v ~/.aws:/root/.aws:ro

显然,您必须调整上面的路径,以匹配您的本地和docker设置。因此,您的docker命令可能是:

docker run -it --rm -v ~/.aws:/root/.aws:ro <name-of-image-to-run>

另一种方法是使用docker环境变量传递AWS凭据,您已经在尝试了。

关于--profile。您的<code>~/。aws可以有多个配置文件,例如,用于不同的aws帐户。使用--profile指定要使用的配置文件。

 类似资料:
  • 问题内容: 创建新容器后,是否可以运行命令以从主机获取容器的IP地址? 基本上,一旦Docker创建了容器,我想滚动自己的代码部署和容器配置脚本。 问题答案: 该的选项就派上用场了。 现代Docker客户端语法为: 旧的Docker客户端语法为: 这些命令将返回Docker容器的IP地址。 如注释中所述:如果在Windows上,请在花括号周围使用双引号而不是单引号。

  • 问题内容: 如标题所示。我需要能够检索Docker主机的IP地址和从主机到容器的端口映射,并在容器内部进行操作。 问题答案: 正如@MichaelNeale注意到的那样,没有必要使用此方法(除非仅在构建时需要此IP),因为此IP将在构建时进行硬编码。

  • 正如标题所说。我需要能够检索docker主机的IP地址,以及从主机到容器的端口映射,并在容器内部完成此操作。

  • 正如标题所说。我需要能够检索docker主机的IP地址和从主机到容器的端口映射,并在容器内部执行此操作。

  • 问题内容: 我想在不同主机上的某些Docker容器中运行任务。而且我编写了一个管理器应用程序来管理容器(启动任务,停止任务,获取状态等)。容器启动后,它将向管理器发送一个http请求及其地址和端口,因此管理器将知道如何管理该容器。 由于同一主机上可能运行着多个容器,因此它们将被映射到不同的端口。要在我的经理上注册一个容器,我必须知道每个容器映射到哪个端口。 如何 在 Docker容器中获取映射的端

  • 我正在我的机器上的docker容器中运行服务器。我想从我的机器(主机)向容器内的服务器发送HTTP请求。当我在容器中使用HTTP发送GET请求时,它会检测服务器。但是,如果我向容器的IP地址发送相同的请求(这次是从容器外部的主机),它会告诉我: 或者这个: 下面是我启动容器时使用的命令: 以及我为发送请求而运行的Python脚本: 下面是我用来查找容器IP地址的命令: 我知道这个问题,但我没有使用