接入教程
1. 登录AWS控制台并导航至ECR服务
2. 创建或选择公共仓库存储镜像
3. 使用Docker CLI登录ECR注册表
4. 构建并标记您的Docker镜像
5. 将镜像推送至ECR公共仓库
6. 通过公共URL分享或部署镜像
使用Python列出公共仓库
python
import boto3
# 初始化客户端
client = boto3.client('ecr-public',
region_name='us-east-1',
aws_access_key_id='YOUR_API_KEY',
aws_secret_access_key='YOUR_SECRET_KEY')
# 列出仓库
response = client.describe_repositories()
for repo in response['repositories']:
print(f"Repository: {repo['repositoryName']}")
print(f"URI: {repo['repositoryUri']}")
使用PHP获取镜像列表
php
<?php
require 'vendor/autoload.php';
use Aws\EcrPublic\EcrPublicClient;
$client = new EcrPublicClient([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => 'YOUR_API_KEY',
'secret' => 'YOUR_SECRET_KEY'
]
]);
$result = $client->describeImages([
'repositoryName' => 'your-repo-name'
]);
foreach ($result['imageDetails'] as $image) {
echo "Image Digest: " . $image['imageDigest'] . "\n";
echo "Pushed At: " . $image['imagePushedAt'] . "\n";
}
?>
使用JavaScript上传镜像标签
javascript
const AWS = require('aws-sdk');
AWS.config.update({
region: 'us-east-1',
accessKeyId: 'YOUR_API_KEY',
secretAccessKey: 'YOUR_SECRET_KEY'
});
const ecrPublic = new AWS.ECRPUBLIC();
const params = {
repositoryName: 'your-repo-name',
imageTag: 'latest',
imageManifest: 'your-manifest-content'
};
ecrPublic.putImage(params, function(err, data) {
if (err) {
console.log('Error:', err);
} else {
console.log('Image uploaded:', data.image);
}
});
常见问题
如何获取API访问密钥?
访问AWS管理控制台,在IAM服务中创建访问密钥。确保为密钥分配适当的Amazon ECR Public权限策略。
公共仓库和私有仓库有什么区别?
公共仓库中的镜像对所有人可见并可拉取,无需认证;私有仓库需要AWS凭证才能访问,适合存储敏感镜像。
支持哪些Docker客户端版本?
Amazon ECR Public兼容Docker CLI 1.7及以上版本,建议使用最新版本以获得最佳兼容性和安全性。
Aitishiku.com