自学内容网 自学内容网

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

0. 准备工作

        os:macos  15.0  

        jdk:1.8

        docker:26.0.0

1. 阿里云容器镜像服务创建实例

创建个人版


 个人实例创建成功

 个人镜像加速器地址

2. 安装Docker Desktop

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

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

3. 新建SpringBoot项目

新建接口"/hello"(测试用,根据实际情况而定)
端口8889(测试用,根据实际情况而定)
pom.xml中指定Main-Class(会打包到jar文件中,通过命令启动服务时需要)
maven package命令打jar包
项目根目录下新建Dockerfile文件(构建镜像必须,Dockerfile相关自行了解)

测试一下

特别说明:

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

# 使用官方的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.1 在阿里云创建镜像仓库

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

新建命名空间

创建镜像仓库

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

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

4.2 构建镜像

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

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

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

4.3 创建容器

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

容器创建成功,服务启动

测试一下

4.4 推送镜像到阿里云

登录阿里云账号

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 


以上。


原文地址:https://blog.csdn.net/java13245/article/details/142314530

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!