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
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
通过运行此命令来使用上述配置构建映像。
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,然后登陆,大告成功!