51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

SpringBoot项目创建Docker镜像并推送到阿里云容器镜像仓库

0**.**准备工作 {#0.%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C}

os:macos 15.0

jdk:1.8

docker:26.0.0

1.阿里云容器镜像服务创建实例 {#1.%E9%98%BF%E9%87%8C%E4%BA%91%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E6%9C%8D%E5%8A%A1%E5%88%9B%E5%BB%BA%E5%AE%9E%E4%BE%8B}

https://cr.console.aliyun.com/cn-shanghai/instances

创建个人版

个人实例创建成功

个人镜像加速器地址

2. 安装Docker Desktop {#2.-%E5%AE%89%E8%A3%85docker-desktop}

https://www.docker.com/products/docker-desktop/

Docker Desktop是Docker的一个集成工具,非必须,过程略。

打开Docker Engine,在registry-mirros中添加阿里云的个人镜像加速器地址
(没有安装Docker Desktop的可使用命令行添加)

3. 新建SpringBoot项目 {#3.-%E6%96%B0%E5%BB%BAspringboot%E9%A1%B9%E7%9B%AE}

新建接口"/hello"(测试用,根据实际情况而定)

端口8889(测试用,根据实际情况而定)

pom.xml中指定Main-Class(会打包到jar文件中,通过命令启动服务时需要)

maven package命令打jar包

项目根目录下新建Dockerfile文件(构建镜像必须,Dockerfile相关自行了解)

测试一下

特别说明: {#%E7%89%B9%E5%88%AB%E8%AF%B4%E6%98%8E%EF%BC%9A}

当根据Dockerfile构建镜像时,Docker会根据FROM指令来确定基础镜像,如果本地不存在该基础镜像则会自动拉取到本地,如果拉取失败则会导致构建镜像失败。
以下镜像地址来自亚马逊镜像仓库,自行选择版本(基础镜像仓库也可自行选择)。 https://gallery.ecr.aws/amazoncorretto/amazoncorretto

 # 使用官方的Java运行时环境作为基础镜像
FROM public.ecr.aws/amazoncorretto/amazoncorretto:8u412​

设置工作目录为/app,将target下的jar包复制到工作目录下。(目录和jar包名根据实际情况而定)

# 设置工作目录
WORKDIR /app

将项目的jar文件复制到容器中
===============


`COPY target/hello-world-1.0.0.jar /app/hello-world-1.0.0.jar`

创建容器时执行命令去启动服务

# 运行应用程序
ENTRYPOINT ["java", "-jar", "/app/hello-world-1.0.0.jar"]

4. 构建镜像 {#4.-%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F}

4.1 在阿里云创建镜像仓库 {#4.1-%E5%9C%A8%E9%98%BF%E9%87%8C%E4%BA%91%E5%88%9B%E5%BB%BA%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93}

获取访问凭证,设置固定密码

新建命名空间

创建镜像仓库


选择刚刚创建的命名空间,输入仓库名称和摘要

进入刚创建的镜像仓库,可以看到仓库的基本信息和一些命令

4.2 构建镜像 {#4.2-%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F}

构建镜像(spacexxxxxx是上面创建的命名空间,1.0.0是版本号)

sudo docker build -t spacexxxxxx/hello-world:1.0.0 . 

构建镜像成功以后,打开Docker Desktop就可以看到
(没有安装Docker Desktop的通过命令执行,命令自行查询)

4.3 创建容器 {#4.3-%E5%88%9B%E5%BB%BA%E5%AE%B9%E5%99%A8}

(没有安装Docker Desktop的通过命令执行,命令自行查询)

容器创建成功,服务启动

测试一下

4.4 推送镜像到阿里云 {#4.4-%E6%8E%A8%E9%80%81%E9%95%9C%E5%83%8F%E5%88%B0%E9%98%BF%E9%87%8C%E4%BA%91}

登录阿里云账号

docker login --username=username registry.cn-shanghai.aliyuncs.com

镜像推送到镜像仓库

docker tag hello-world:1.0.0 registry.cn-shanghai.aliyuncs.com/spacexxxxxx/hello-world:1.0.0
docker push registry.cn-shanghai.aliyuncs.com/spacexxxxxx/hello-world:1.0.0

镜像已推送到阿里云容器镜像仓库

从仓库中拉取镜像到本地

docker pull registry.cn-shanghai.aliyuncs.com/spacexxxxxx/hello-world:1.0.0 


以上。

赞(0)
未经允许不得转载:工具盒子 » SpringBoot项目创建Docker镜像并推送到阿里云容器镜像仓库