使用docker-maven插件制作镜像

一. 背景

废话少说,容器化部署应用现在已经是很普遍了,springboot也使用的普遍,那么,如何快速将一个springboot项目打包成一个docker镜像呢?还有一个问题就是,对于研发和测试来说 自己的电脑上基本上不会安装Windows版本的docker,那么怎样实现在本地输入一个命令后就直接将代码打包成一个镜像呢?本文讲述了如何实现在本地简单配置maven后利用远程Linux服务器将springboot应用打包成docker镜像并推送到镜像仓库

二. docker安装及配置

1. docker安装

docker如何安装在这里就不多说了 有问题的话可以看看这篇文章

2.开启2375端口,提供外部访问docker

编辑docker文件:/usr/lib/systemd/system/docker.service,命令如下

vi /usr/lib/systemd/system/docker.service

修改ExecStart行,增加内容 -H tcp://0.0.0.0:2375 ,修改后如下:

在这里插入图片描述
重新加载docker配置

systemctl daemon-reload
systemctl restart docker 

配置完成后 浏览器访问 http://192.168.30.108:2375/version
注:192.168.30.108为远程服务器的ip
如果界面显示了docker的版本信息 则表示配置成功
在这里插入图片描述

三. dockerfile编写

lz是这样写的 仅供参考

FROM java
LABEL MAINTANIER="xyl <905756539@qq.com>"
ENV WORKDIR=/usr/local/share/goalgo/team-server

WORKDIR ${WORKDIR}

ADD *.jar ${WORKDIR}/

VOLUME ${WORKDIR}/logs

EXPOSE 80

CMD ["java","-Xms256m","-Xmx2048m","-Djava.security.egd=file:/dev/urandom","-jar","team-server-1.0-SNAPSHOT.jar","--server.port=80"]

dockerfile各个参数意思如下:
在这里插入图片描述

四.pom文件配置镜像仓库等信息

注:一下pom文件配置是不全的 主要将maven-docker插件的配置给出来了

	 <properties>
        <!--docker镜像仓库的路径-->
        <docker.repository.url>reg.our51.com</docker.repository.url>
        <!---镜像仓库的命名空间即 项目名-->
        <docker.repository.namespace>goalgo</docker.repository.namespace>
        <!--对应maven setting.xml中的配置 请看本文标题五-->
        <docker.repository.serverId>docker-goalgo</docker.repository.serverId>
        <!--编译docker镜像的主机-->
        <docker.host>http://192.168.30.108:2375</docker.host>
    </properties>
    <dependencies>
        ...
    </dependencies>
    <build>
        <defaultGoal>compile</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.5.1</version>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <forceTags>true</forceTags>
                    <pushImage>true</pushImage>
                    <imageName>
                        ${docker.repository.url}/${docker.repository.namespace}/${project.artifactId}:${version}
                    </imageName>
                    <serverId>${docker.repository.serverId}</serverId>
                    <registryUrl>${docker.repository.url}</registryUrl>
                    <dockerDirectory>src/main</dockerDirectory>
                    <dockerHost>${docker.host}</dockerHost>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

在这里插入图片描述

五.maven配置

找到maven安装目录中的配置文件 修改setting.xml 配置server
在这里插入图片描述
在这里插入图片描述

六.执行打包

进入springboot项目目录下 执行以下命令 进行打包

mvn clean package -Dmaven.test.skip=true -Dversion=lz070501 docker:build

注:-Dversion=lz070501 是指镜像的版本号为lz070501 如果远程服务器上没有jdk的镜像 第一次打包会很慢 耐心等待即可
在这里插入图片描述
执行成功后 在docker服务器和镜像仓库上会看到docker这个docker镜像
在这里插入图片描述
在这里插入图片描述
到此docker镜像就制作完成啦,感谢您的阅读,如有疑问请留言。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值