idea中打包docker image,并推到docker hub中

前言

刚接触docker,之前学了怎么pull别人的镜像,今天写了个demo想学习一下自己的项目怎么打包成镜像,再发布到docker hub上,记录一下。
总结一下大概流程就是在idea上配置docker, 然后把自己的项目打包成jar包,再打包成镜像在容器里运行一下,确定运行没有问题之后再登录自己的docker hub,把镜像传上去。

环境

windows10, idea 2022, jdk 8,maven

具体步骤

1.使用maven给项目打成jar包

点package

在这里插入图片描述

注意:这里记录几个问题
(1)我一开始就是直接打包的,然后terminal运行jar包报错,如下
在这里插入图片描述
查了一下问题是打包的时候要制定main class,解决方案是在pom.xml里添加:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.fisco.Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

红线的地方写自己主类的位置
在这里插入图片描述
我的main class 位置
在这里插入图片描述
(2)修改上面的问题之后,再运行又报错:
在这里插入图片描述
查了一番资料,感觉是maven打包出的问题,目前没解决这个问题,我在主函数里没有使用这个包

2.idea连接docker

(1)在 File-> Settings 里安装docker插件

在这里插入图片描述

(2)连接docker

在 File-> Settings->build,execution,deployment->Docker,点上面那个+,填写右边的配置信息。
注意connect to docker daemon with:的选项,我看了很多文章,发现大家都没有docker for windows的选项,不知道为啥,可能idea版本问题??很多人都用的TCP socket连接,感觉很麻烦,暂时留个坑,下次弄了来填。
选了docker for windows之后他就自动连上了,下面会显示连接成功。
在这里插入图片描述

(3)编写docker file

我新建了一个file,取名Dockerfile 放在target目录下面,HelloWorld-1.0-SNAPSHOT.jar是我打包的jar包

我的docker file内容,docker file语法参照这篇文章Docker 基础之Dockerfile命令详解,根据自己需求进行修改

##使用 JDK 8 环境为基础镜像,如果镜像不是本地的将会从 DockerHub 进行下载
FROM java:8
#作者
MAINTAINER cnzhangxy

#复制上下文目录下的target/demo-0.0.1-SNAPSHOT.jar 到容器里
COPY HelloWorld-1.0-SNAPSHOT.jar HelloWorld-1.0-SNAPSHOT.jar

#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8081

#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","HelloWorld-1.0-SNAPSHOT.jar"]

(4)添加项目Docker运行配置

点Edit configurations
在这里插入图片描述

点“+”
在这里插入图片描述

点 Docker-> dockerfile
在这里插入图片描述
在这里插入图片描述

3.在容器内运行

把configuration换成docker,再点击运行
在这里插入图片描述

会发现下面弹出docker的窗口,就可以看到自己的docker的信息啦,可以在images和containers可以看见刚刚新建的镜像和容器。
在这里插入图片描述

4.上传docker hub

确定在容器内的运行是正确的之后就可以发布在docker hub上了

(1)登录:docker login -u 你的用户名

(2)输入密码,登陆成功后,在推送前,必须将你的镜像命名规范格式,否则会失败。输入如下命令:

docker tag 镜像id 你的docker账户名/新的镜像名:版本号

例:docker tag c3e2d1273618 cnzhangxy/demo:1.0

(3)规范格式后可以推送镜像

docker push 用户名/镜像名:标签(版本号)

例:docker push cnzhangxy/demo:1.0

5.结束

打开docker hub,登陆之后就能看见自己的镜像啦
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Bad_foxS/article/details/130596032