Docker 镜像上传到 AWS ECR:从构建到推送的全流程

一、在 EC2 实例中安装 Docker(适用于 Amazon Linux 2)

步骤 1:连接到 EC2 实例

复制代码
ssh -i your-key.pem ec2-user@your-ec2-public-ip

步骤 2:安装 Docker

复制代码
sudo yum update -y
sudo amazon-linux-extras enable docker
sudo yum install -y docker

步骤 3:启动并设置 Docker 服务

复制代码
sudo service docker start
sudo systemctl enable docker

步骤 4:将当前用户加入 docker 组(可选)

复制代码
sudo usermod -aG docker ec2-user

⚠️ 重新连接 SSH 后才能生效,或用 newgrp docker 立即生效。


步骤 5:验证 Docker 安装

复制代码
docker version
docker info

二、运行测试容器(比如 nginx)

复制代码
docker run -d -p 80:80 nginx

然后在浏览器访问你 EC2 的公网 IP:

复制代码
http://<your-ec2-public-ip>

三、安全组配置检查

确保 EC2 安全组允许端口 80 访问:

类型 协议 端口范围 来源
HTTP TCP 80 0.0.0.0/0

搭建ECR仓库


前提准备

  • 已安装并登录好 AWS CLI

  • 本地已构建好镜像(比如 myapp:latest

  • 已配置 AWS CLI 凭证(aws configure


🔧 步骤 1:创建 ECR 仓库

复制代码
aws ecr create-repository --repository-name myapp --region cn-north-1

示例输出中会有一个 repositoryUri,例如:

复制代码
123456789012.dkr.ecr.cn-north-1.amazonaws.com.cn/myapp

🔧 步骤 2:登录到 ECR

复制代码
aws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.cn-north-1.amazonaws.com.cn

用你自己的 账号ID 和区域 替换掉上面的内容


🔧 步骤 3:给镜像打标签(tag)

将你本地镜像标记为 ECR 地址:

复制代码
docker tag myapp:latest 123456789012.dkr.ecr.cn-north-1.amazonaws.com.cn/myapp:latest

🔧 步骤 4:推送到 ECR

复制代码
docker push 123456789012.dkr.ecr.cn-north-1.amazonaws.com.cn/myapp:latest

推送成功后

你就可以在 ECS 服务中引用这个镜像地址

复制代码
123456789012.dkr.ecr.cn-north-1.amazonaws.com.cn/myapp:latest

并在 ECS 的任务定义中填入该镜像即可运行容器。


可选:检查上传的镜像

复制代码
aws ecr describe-images --repository-name myapp