步骤

  • 将你已经封装好的jar包导入Linux中
  • 在Linux中创建Dockerfile文件,并写入以下内容(括号内容应删去):

    正常情况下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    FROM openjdk:17(你想要的任意版本)

    LABEL author=ranni(名字)

    COPY app.jar /app.jar(把jar包存放在规定的文件夹)

    EXPOSE 8080(端口)

    ENTRYPOINT ["java","-jar","/app.jar"](启动命令)
  • 输入以下命令
    1
    docker build -f Dockerfile -t 你的镜像名:版本号 .
    这时你查看镜像应该已经发现你创建的镜像了,接着启动它
    1
    docker run -d -p 8080:8080 你的镜像名:版本号
    就可以直接web访问了。

    但是我遇到了问题,在设置完镜像后不能正常启动,原因是我使用的国内镜像不能正常拉取所需要的镜像

    如果很不幸,你和我处境一样,我知道有两种办法来解决。
    其一是切换镜像,但是我不推荐,因为麻烦。
    最后就是我选择的方法,自己导入所需镜像,然后把Dockerfile中需要的镜像地址替换成我导入的镜像地址。
    在这个步骤中我需要自己导入jdk17.
    1
    docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openjdk:17
    同时修改Dockerfile文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ARG BASE_IMAGE

    FROM $BASE_IMAGE

    LABEL author=ranni(名字)

    COPY app.jar /app.jar(把jar包存放在规定的文件夹)

    EXPOSE 8080(端口)

    ENTRYPOINT ["java","-jar","/app.jar"](启动命令)
    然后在启动容器时,指定参数
    1
    docker run -d -p 8080:8080 -e BASE_IMAGE=swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/openjdk:17 你的镜像名:版本号
    这样就可以正常拉取镜像并启动容器了。