在使用Idea直接构建Dokcerfile文件时,我们需要打开Docker的远程访问!
(一)开启Docker远程访问
Docker的启动配置文件在Ubuntu18.04系统的路径为/lib/systemd/system/docker.service
进入到/lib/systemd/system路径下,然后编辑docker.service配置文件:
vim /lib/systemd/system/docker.service
找到ExecStart所对应的行,修改为(Docker的远程访问接口为2375):
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
保存并退出编辑后,重载守护进程以及重启Docker:
sudo systemctl daemon-reload
sudo service docker restart
可通过执行命令查看是否开放了远程访问端口:
sudo systemctl status docker.service
(二)然后可在Idea中测试能否远程上Docker以及能否在Maven中构建DockerFile文件并发送到Ubuntu服务器:
Idea远程访问Docker设置:
maven配置文件中的docker插件配置:
<build>
<plugins>
<!-- docker镜像build插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<!-- 绑定docker命令到 maven各个阶段 -->
<!-- 解释:可以把 docker 分为 build、tag、push,然后分别绑定 Maven 的 package、deploy 阶段 -->
<executions>
<execution>
<id>build-image</id>
<!-- 这里将插件绑定在package这个操作上。用户只需执行mvn package ,就会自动执行mvn docker:build 相当于执行了mvn clean package docker:build -->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- imageName镜像名称需匹配[a-z0-9-_.],否则构建不会成功 -->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!-- 指定Dockerfile文件路径,另外一种方式可直接在pom.xml配置对应的标签属性值 -->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!-- build时,指定–rm=true即build完成后删除中间容器 -->
<rm>true</rm>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--指定远程 docker 服务器ip地址-->
<dockerHost>http://192.168.0.12:2375</dockerHost>
<!-- 这里是复制jar包到docker容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!-- jar包所在的路径 此处配置的 即对应 target 目录 -->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
版权声明:本文为u013068184原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。