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
以上。