使用docker-maven-plugin构建Spring boot镜像

使用docker-maven-plugin构建镜像

docker-maven-plugin的Github地址:

https://github.com/spotify/docker-maven-plugin

目的

使用docker-maven-plugin插件在maven项目中创建一个Docker镜像,比方说,build 过程可以为java服务输出一个可以运行该服务的Docker镜像。

建立

默认情况下,执行mvn docker:build -DpushImage命令时,将尝试连接到localhost:2375上的docker。将DOCKER_HOST环境变量设置为在其他位置连接。

DOCKER_HOST=tcp://:2375

> [ERROR] Failed to execute goal
> com.spotify:docker-maven-plugin:1.0.0:build (default-cli) on project
> wf-docker: Exception caught: java.util.concurrent.Execution Exception:
> com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException:
> org.apache.http.conn.HttpHostConnectException: Connect to
> 192.168.3.148:2375 [/192 .168.3.148] failed: Connection refused: connect -> [Help 1]

解决方式:
1.在linux服务器上装好docker
2.接下来要想在windows中操作远程linux中的docker,那前提是必须开启docker远程API。
修改docker配置文件#vi /usr/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  

这里就写4个0,你可别改成自己的ip哦,保存后退出,重新加载配置文件#systemctl daemon-reload ,启动docker #systemctl start docker ,

输入#netstat -anp|grep 2375 显示docker正在监听2375端口,输入#curl 127.0.0.1:2375/info 显示一大堆信息,证明远程api就弄好了

3.在windows系统环境变量中新建DOCKER_HOST

值为tcp://192.168.3.148:2375

使用docker-maven-plugin构建Spring boot镜像_第1张图片
在POM中指定构建信息

 
        
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                    192.168.3.163/wf-docker
                    ${project.basedir}/src/main/docker
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    

使用Dockerfile
要使用一个Dockerfile,指定必须dockerDirectory元素。

${project.basedir}/src/main/docker

使用docker-maven-plugin构建Spring boot镜像_第2张图片

用法

通过运行此命令来使用上述配置构建映像。

mvn clean package docker:build

要将刚刚构建的映像推送到注册表,指定请pushImage标志。

mvn clean package docker:build -DpushImage

要仅将特定标记推送到注册表,指定请pushImageTag标记。

mvn clean package docker:build -DpushImageTag

使用私有镜像中心配置
为了将镜像推送到私有的镜像注册中心,docker需要在镜像tag之前用注册中心的地址作为前缀。比如需要推送my-image到registry.example.com,那么这个镜像需要命名为registry.example.com/my-image
最简单的方法就是在中配置:

  
        
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                    registry.example.com/my-image/imageName>

这样,当你通过命令docker:build -DpushImage或者docker:push推送镜像时,docker引擎会将镜像推送到registry.example.com.

推送镜像到私有仓库
1.先登陆
docker login ip
2.执行推送命令
mvn docker:build -DpushImage
报错:
在这里插入图片描述
vim /etc/docker/daemon.json
添加信任:

“insecure-registries” : [“192.168.3.146”]
在这里插入图片描述
systemctl daemon-reload
systemctl restart docker
重启docker,然后登陆,大告成功!
在这里插入图片描述

你可能感兴趣的:(docker)