文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

详细docker-maven-plugin使用方法

2024-04-02 19:55

关注

Docker-Maven-Plugin

微服务部署有两种方法:

Maven插件自动部署步骤

写在最前面:该方法有漏洞,容易被黑客远程放入挖矿机镜像,开启需做好防范,开放了2375,没做ip限制,就被拉去挖矿了。。。推荐使用CA加密端口

1、修改宿主机的docker配置,开放2375端口,让其可以远程访问

本地执行maven命令对于宿主机来说是远程操作,docker的远程操作是默认关闭的,先开启2375端口

首先在宿主机上执行命令,修改配置文件(centos 7)


vi /lib/systemd/system/docker.service

ExecStart=后添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock


ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

unix://var/run/docker.sock:unix socket,本地客户端将通过这个来连接 Docker Daemon

tcp://0.0.0.0:2375:tcp socket,表示允许任何远程客户端通过 2375 端口连接 Docker Daemon。

原来

修改后

如果是centos7以下修改为


ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

2、刷新配置,重启服务


systemctl daemon-reload		//加载docker守护线程
systemctl restart docker 	//重启docker

3、配置容器防火墙

即使开放了2375端口,外部也是不能访问的,只能内部访问,如果要让外部可以访问。得要配置下防火墙。如果阿里云不配置,当心被拉去挖矿-_-,我这是学校服务器,要vpn才能访问,无所谓

这里就关了


使用命令
systemctl stop firewalld (关闭防火墙)
systemctl disable firewalld (禁用防火墙,开机不会启动)

关闭 selinux


vi /etc/selinux/config,SELINUX=enforcing改为disabled

在这里插入图片描述

重启完成后,检查防火墙和selinux状态


systemctl status firewalld(查看防火墙状态)
secon(查看selinux状态)

在这里插入图片描述

阿里云建议配置安全诅

此时我连一下 docker,成功

 4、在pom.xml 添加配置

用下面配置就会自动生成Dockerfile


<build>
        <finalName>testDocker</finalName>
        <plugins>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!--docker的maven插件-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.1.0</version>
                <!--配置部分-->
                <configuration>
                    <!--修改imageName节点的内容,改为私有仓库地址和端口,再加上镜像id和TAG,我们要直接传到私服-->
                    <!--配置最后生成的镜像名,docker images里的,我们这边取项目名:版本-->
                    <imageName>172.19.240.208:5000/${project.artifactId}:${project.version}</imageName>
                    <!--基础镜像,相当于Dockerfile里的from-->
                    <baseImage>ascdc/jdk8</baseImage>
                    <!--入口点,project.build.finalName就是project标签下的build标签下的filename标签内容,testDocker-->
                    <!--相当于启动容器后,会自动执行java-jar/testDocker.jar-->
                    <entryPoint>["java", "‐jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <!--是否推送到docker私有仓库-->
                    <pushImage>true</pushImage>
                    <registryUrl>172.19.240.208:5000</registryUrl>

                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <!--把哪个文件上传到docker,相当于Dockerfile里的add testDocker.jar /-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://172.19.240.208:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

注意,push到私有仓库有三点,并且前提是容器处于启动状态


<!-- 1、新增registryUrl节点,内容是私有仓库地址和端口(我这边设置了5000端口)-->
<registryUrl>你的ip:5000</registryUrl>

<!-- 2、新增pushImage节点 -->
<pushImage>true</pushImage>

<!-- 3、修改imageName节点的内容,改为私有仓库地址和端口,再加上镜像id和TAG,到仓库里的名字就是你的项目名:版本 -->
<imageName>你的ip:5000/${project.artifactId}:${project.version}</imageName>

mvn clean,mvn install一下,先放到本地仓库再说

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-84l0HMwJ-1579593153706)(/Users/zhangye/Library/Application Support/typora-user-images/image-20200120214402887.jpg)]

然后执行mvn docker:build命令创建镜像,如果还要上传,加个-DpushImage参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wdYBT027-1579593153707)(/Users/zhangye/Library/Application Support/typora-user-images/image-20200120214544482.jpg)]

跑的时候有一个错误

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.1.0:build (default-cli) on project demo:
Exception caught: pull access denied for jdk1.8, repository does not exist or may require 'docker login':
denied: requested access to the resource is denied -> [Help 1]

百度查了一下,很多人说是要登录,实际上不是要登录,也不是仓库不存在,实际上是我的docker上没有jdk1.8的镜像文件,需要自己下一个,可以docker search jdk8,pull一个,或者自己传tar包上去然后Dockerfile搞一个。我直接pull了一个

在这里插入图片描述

docker images

在这里插入图片描述

在项目中改下基础镜像名

在这里插入图片描述

成功构建并push上去

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SAUhrnA3-1579593153710)(/Users/zhangye/Library/Application Support/typora-user-images/image-20200121154702289.jpg)]

在这里插入图片描述

查看镜像

在这里插入图片描述

查看仓库

在这里插入图片描述

到此这篇关于详细docker-maven-plugin使用方法的文章就介绍到这了,更多相关docker-maven-plugin使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯