AWS学习笔记----ECR

一、创建镜像

1、在EC2实例上安装docker

更新实例上已安装的程序包和程序包缓存

sudo yum update -y

安装最新的 Docker Community Edition 程序包

sudo amazon-linux-extras install docker

启动 Docker 服务

sudo service docker start

(可选)将 ec2-user 添加到 docker 组,以便能够执行 Docker 命令,而无需使用 sudo。

sudo usermod -a -G docker ec2-user

退出当前ssh会话,重新连接,新 SSH 会话将具有相应的 docker 组权限。

验证在无sudo情况下运行docker命令

docker info

2、创建Docker映像

touch Dockerfile

Dockerfile内容为创建一个Apache的网页,显示Hello World!

FROM ubuntu:18.04

# Install dependencies
RUN apt-get update && \
 apt-get -y install apache2

# Install apache and write hello world message
RUN echo 'Hello World!' > /var/www/html/index.html

# Configure apache
RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \
 echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \
 echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ 
 echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ 
 chmod 755 /root/run_apache.sh

EXPOSE 80

CMD /root/run_apache.sh

从Dockerfile构建映像

docker build -t hello-world .

运行 docker images 以验证是否已正确创建映像

docker images --filter reference=hello-world

构建成功则输出:

在这里插入图片描述
运行新构建的映像,-p 80:80 选项将容器上公开的端口 80 映射到主机系统上的端口 80。将EC2ip复制到浏览器,页面出现Hello World!则表示构建成功。

docker run -t -i -p 80:80 hello-world

在这里插入图片描述

3、从控制台创建存储库

二、身份验证

在自己的用户下创建访问秘钥
在这里插入图片描述

aws conifgure

输入秘钥信息
在这里插入图片描述
查看cli版本

aws --version

1)使用 1.17.10 之前的 AWS CLI 版本时,使用 get-login 命令进行 Amazon ECR 注册表进行身份验证。(region替换为自己的region)

aws ecr get-login --region region --no-include-email

结果输出是 docker login 命令,将 docker login 命令复制并粘贴到终端,授权 Docker CLI 访问注册表。此命令提供一个授权令牌,此令牌在 12 小时内对指定注册表有效。
2)使用 1.17.10 之后的 AWS CLI 版本时,使用 get-login-password 针对 Amazon ECR 注册表验证 Docker。

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

三、推送映像

标记映像,以便将映像推送到存储库

docker tag hello-world:latest aws_account_id.dkr.ecr.us-east-1.amazonaws.com/hello-world:latest
docker push 374284294913.dkr.ecr.cn-northwest-1.amazonaws.com.cn/ggg:latest

控制台刷新,出现自己刚刚推送的映像,推送成功

<think>嗯,用户想了解如何在Python中使用DLC(深度学习容器)进行模型推理,并且需要示例或教程。首先,我需要明确DLC是什么。根据引用[2]中的内容,Amazon SageMaker笔记本实例下载模型并上传到S3存储桶,这可能和DLC有关,因为AWS的深度学习容器常用于部署模型。DLC通常是预先配置好的Docker镜像,包含深度学习框架和依赖,方便部署。 用户可能需要知道如何准备模型、配置环境、编写推理代码以及部署。我需要分步骤解释,确保结构清晰。首先,环境准备,可能涉及安装AWS SDK(boto3)和SDK库,如引用[2]中的Hugging Face相关操作。然后,模型准备,需要将训练好的模型导出,比如使用PyTorch或TensorFlow保存模型文件,并上传到S3,如引用[2]中的snapshot_download步骤。 接下来是创建DLC实例,可能需要使用SageMaker的Python SDK,配置角色、实例类型等。然后编写推理脚本,处理输入输出,加载模型,如引用[3]中提到的SNPE工具的环境设置和模型处理,但这里可能更侧重于SageMaker的部署。部署模型到端点,最后调用端点进行推理。 需要注意权限问题,比如IAM角色需要访问S3和SageMaker的权限,这一点在引用[2]中提到的Hugging Face访问令牌可能相关。示例代码部分需要展示完整的流程,包括初始化、预测函数、清理资源。另外,要提醒用户替换必要的参数,如模型路径、角色ARN等。 可能的相关问题包括性能优化、日志监控、本地测试方法,这些都需要根据经验给出建议。同时,要检查引用内容,确保引用的正确性,比如引用[2]中的模型下载步骤,引用[3]的环境配置可能不直接相关,但可以作为环境准备的参考。 最后,确保回答符合用户的要求,使用中文,结构清晰,代码正确,并且生成相关问题帮助用户进一步学习。</think>### Python中使用深度学习容器(DLC)进行模型推理的完整教程 深度学习容器(DLC)是预配置的Docker容器镜像,集成了主流深度学习框架和依赖库[^2]。以下是基于AWS SageMaker平台的实现步骤: #### 一、环境准备阶段 1. 安装必要工具 ```python pip install boto3 sagemaker ``` 2. 配置AWS凭证 ```python import boto3 sess = boto3.Session( region_name='us-west-2', aws_access_key_id='YOUR_ACCESS_KEY', aws_secret_access_key='YOUR_SECRET_KEY' ) ``` #### 二、模型准备流程 1. 导出训练好的PyTorch模型 ```python import torch model = torch.nn.Linear(10, 2) torch.save(model.state_dict(), 'model.pth') ``` 2. 上传模型到S3存储桶 ```python from sagemaker.s3 import S3Uploader model_uri = S3Uploader.upload('model', 's3://your-bucket/models/') ``` #### 三、DLC部署配置 ```python from sagemaker.pytorch import PyTorchModel model = PyTorchModel( entry_point='inference.py', model_data=model_uri, framework_version='2.0.0', role='arn:aws:iam::ACCOUNT:role/SageMakerRole', image_uri='763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:2.0.0-gpu-py310' ) ``` #### 四、推理脚本示例(inference.py) ```python import torch import json def model_fn(model_dir): device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = torch.nn.Linear(10, 2) model.load_state_dict(torch.load(f"{model_dir}/model.pth")) return model.to(device) def predict_fn(input_data, model): with torch.no_grad(): return model(input_data) ``` #### 五、部署与调用 1. 部署端点 ```python predictor = model.deploy( instance_type='ml.g4dn.xlarge', initial_instance_count=1 ) ``` 2. 执行推理 ```python import numpy as np sample = np.random.randn(10).astype(np.float32) result = predictor.predict(sample) print(f"推理结果:{result}") ``` 3. 清理资源 ```python predictor.delete_endpoint() ``` ### 关键注意事项 1. 镜像选择需匹配框架版本(PyTorch/TensorFlow/MXNet) 2. IAM角色需具备S3访问和SageMaker操作权限 3. 输入数据需符合模型的张量形状要求[^3] 4. GPU实例需选择带GPU标识的镜像版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值