问题
上一篇文章,在AWS云上面部署了k8s集群,这次接下来,需要在一个docker镜像私库。
步骤
创建docker镜像私库
打开AWS ECR主页,创建一个docker镜像私库,如下图:
设置私有镜像库名称,直接创建私有库,如下图:
结果如下图:
AWS CLI推送镜像
选中镜像库,选择“查看推送命令”,如下图:
设置本地CLI,登录AWS ECR的docker镜像库,如下命令:
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com
登录成功如下图:
构建Docker镜像
准备一个Spring Hello World项目
package com.xxxx.demo;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/")public String hello() {return "Hello World!";}
}
Dockerfile
FROM bellsoft/liberica-openjdk-alpine-musl:17
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
VOLUME /tmp
WORKDIR /home/myapp
COPY target/*.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
构建镜像
docker build -t demo .
本地测试镜像
docker run -p 8080:8080 -it --rm --name my-spring-app demo
运行之前本地构建的docker镜像,启动之后,打开如下页面:
本地docker镜像没有问题后,我们下一步开始给本地docker镜像打tag。
打标签Docker镜像
docker tag demo:latest xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/demo:latest
推送到AWS ECR中
docker push xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/demo:latest
等待上传成功后,就可以去 AWS ECR主页查看刚上传的镜像了,如下图:
到此为止。
总结
AWS ECR的使用,还是很简单的,只要本地AWS CLI能正常使用,大部份流程和Docker推送流程都差不多。
参考
- 开始通过 AWS Management Console 使用 Amazon ECR
- 将 Amazon ECR 与 AWS CLI 结合使用