springboot项目构建docker image镜像

怎么把自己的spring-boot项目构建成docker image 打包到宿主机上,这里说下两种方法:

一、首先要搭建自己的docker仓库服务器:

当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry私有仓库搭建。

Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。 

docker pull registry:2
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name dockerRegistry registry:2

浏览器访问http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常。这样私有仓库就成功了。

 接下来,开始本地打包到docker仓库,通过Maven插件自动部署,需要先开启docker的远程连接。

修改宿主机的docker配置,开放2375端口,让其可以远程访问。该方法有漏洞,容易被黑客远程放入挖矿机镜像,开启需做好防范,开放了2375,没做ip限制,容易被拉去挖矿。。

修改配置文件(centos7 

vi /lib/systemd/system/docker.service
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。

 刷新配置,重启服务

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

一、通过maven插件的方式(docker-maven-plugin)

1、pom里添加docker-maven-plugin代码

<plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.2.0</version>
        <configuration>
          <dockerHost>http://114.xxx.xx.xx:2375</dockerHost>
          <imageName>${project.artifactId}:${project.version}</imageName>
          <imageTags>${project.version}</imageTags>
          <baseImage>ascdc/jdk8</baseImage>
          <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
          <resources>
              <!--复制jar包到docker容器指定的位置-->
            <resource>
              <targetPath>/</targetPath>
              <directory>${project.build.directory}</directory>
              <include>${project.build.finalName}.jar</include>
            </resource>
          </resources>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

 如果报错类似java:8 not found ,我的docker上没有jdk1.8的镜像文件,需要自己下一个,可以docker search jdk8,pull一个,或者自己传tar包上去然后Dockerfile搞一个。我直接pull了一个.

 

docker images 查看下镜像

 然后修改pom文件的基础镜像:baseImage改为刚才pull的镜像ascdc/jdk8

<baseImage>ascdc/jdk8</baseImage>

然后运行docker:build命令:

 

 build success后,查看docker images

 如果不想手动docker:build构建的话,pom可以加下面插件,实现 mvn clean package 命令即可实现自动构建到docker仓库了

<plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>${spring-boot-maven-plugin.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <includeSystemScope>true</includeSystemScope>
        </configuration>
      </plugin>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猩猩之火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值