
javierpassan/node-awscli本Docker镜像集成了Node.js LTS(长期支持版)运行时环境与AWS CLI(Amazon Web Services Command Line Interface)工具,旨在为开发者提供一站式容器环境,满足同时使用Node.js应用开发与AWS资源管理的需求。镜像基于轻量级基础镜像构建,确保环境一致性与资源高效利用。
node -v查看)~/.aws/config)与凭证文件(~/.aws/credentials)bash# 拉取镜像(假设镜像名称为node-aws-cli:lts) docker pull node-aws-cli:lts # 交互式运行容器(进入bash终端) docker run -it --rm node-aws-cli:lts bash
在容器终端中执行以下命令验证组件版本:
bash# 验证Node.js版本 node -v # 验证npm版本 npm -v # 验证AWS CLI版本 aws --version
通过-e参数传递AWS凭证与区域信息:
bashdocker run -it --rm \ -e AWS_ACCESS_KEY_ID="your_aws_access_key" \ -e AWS_SECRET_ACCESS_KEY="your_aws_secret_key" \ -e AWS_REGION="us-east-1" \ node-aws-cli:lts \ aws s3 ls # 示例:列出S3存储桶
将本地~/.aws目录(包含config与credentials文件)挂载到容器:
bashdocker run -it --rm \ -v ~/.aws:/root/.aws \ # 挂载本地AWS配置目录到容器 node-aws-cli:lts \ aws ec2 describe-instances # 示例:查询EC2实例信息
挂载当前目录到容器/app路径,执行脚本:
bashdocker run -it --rm \ -v $(pwd):/app \ # 挂载本地目录到容器/app -w /app \ # 设置工作目录为/app node-aws-cli:lts \ node your_script.js # 执行本地Node.js脚本
示例:在Node.js脚本中调用AWS CLI命令(通过child_process模块):
javascript// script.js const { execSync } = require('child_process'); // 调用AWS CLI获取S3存储桶列表 const s3Buckets = execSync('aws s3 ls --output json', { encoding: 'utf-8' }); console.log('S3 Buckets:', JSON.parse(s3Buckets));
执行脚本:
bashdocker run -it --rm \ -v $(pwd):/app \ -w /app \ -e AWS_ACCESS_KEY_ID="your_key" \ -e AWS_SECRET_ACCESS_KEY="your_secret" \ -e AWS_REGION="us-east-1" \ node-aws-cli:lts \ node script.js
| 环境变量 | 说明 | 默认值 |
|---|---|---|
NODE_ENV | Node.js运行环境(如development/production) | development |
AWS_ACCESS_KEY_ID | AWS访问密钥ID | 无 |
AWS_SECRET_ACCESS_KEY | AWS密钥 | 无 |
AWS_REGION | AWS服务区域(如us-east-1/ap-southeast-1) | 无 |
AWS_DEFAULT_OUTPUT | AWS CLI默认输出格式(json/table/text) | json |
root用户为默认运行用户,生产环境建议通过--user参数指定非root用户Dockerfile构建自定义镜像manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务