AWS学习笔记----ECR

    技术2026-06-09  10

    一、创建镜像

    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

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

    Processed: 0.018, SQL: 9