Docker 開啟TCP 服務(wù)
vi /lib/systemd/system/docker.service
改寫以下內(nèi)容
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
- 重啟服務(wù)
#重新加載配置文件
systemctl daemon-reload
#重啟服務(wù)
systemctl restart docker.service
此時(shí)docker已經(jīng)開放了2375端口,使用外部主機(jī)訪問
http://docker:2375/info
IDEA 集成Docker
-
安裝Docker 插件
-
配置docker服務(wù)地址
點(diǎn)擊view->services,打開docker的操作面板
雙擊docker01可以看到此docker服務(wù)下鏡像和容器
右擊docker鏡像,可以創(chuàng)建新的容器,并且可以監(jiān)控容器日志輸出,docker的日志收集是將容器內(nèi)的標(biāo)準(zhǔn)輸出以及錯(cuò)誤輸出重定向到了宿主機(jī)的某個(gè)文件中,這樣就可以看到容器的運(yùn)行信息了。
配置maven插件,實(shí)現(xiàn)打包后自動(dòng)生成鏡像并啟動(dòng)容器
- 在maven中配置docker打包插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!-- 鏡像名稱 guoweixin/exam-->
<imageName>${project.artifactId}</imageName>
<!--指定標(biāo)簽-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 基礎(chǔ)鏡像jdk 1.8-->
<baseImage>java</baseImage>
<!-- 制作者提供本人信息 -->
<maintainer>zdk=20477@sina.com</maintainer>
<runs>
<run>mkdir -p /opt/java/</run>
</runs>
<!--切換到/ROOT目錄 -->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
<!-- 指定 Dockerfile 路徑
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
-->
<!--指定遠(yuǎn)程 docker api地址-->
<dockerHost>http://docker:2375</dockerHost>
<!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要復(fù)制的根目錄,${project.build.directory}表示target目錄-->
<directory>${project.build.directory}</directory>
<!--用于指定需要復(fù)制的文件。${project.build.finalName}.jar指的是打包后的jar
包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
這個(gè)插件的作用就是模擬一個(gè)Dockerfile,然后告訴docker服務(wù)打包一個(gè)鏡像。
在cmd終端運(yùn)行 mvn clean package docker:build命令可以構(gòu)建一個(gè)鏡像,其中clean package這兩個(gè)是常用的插件命令,maven內(nèi)置好了,而docker:build 這個(gè)是作用于package后的生命周期的build的階段,作用就是將打好的jar包構(gòu)建成一個(gè)鏡像。
配置package的docker-build插件
當(dāng)執(zhí)行package生命周期的時(shí)候,設(shè)置goal目標(biāo),進(jìn)行docker鏡像的構(gòu)建
<!--當(dāng)執(zhí)行mvn package 時(shí),執(zhí)行: mvn clean package docker:build -->
<executions>
<execution>
<id>build-image</id>
<!--指定此插件在package階段執(zhí)行-->
<phase>package</phase>
<goals>
<!--指定此插件的build的目標(biāo)-->
<goal>build</goal>
</goals>
</execution>
</executions>
配置上這個(gè)以后,只要每次進(jìn)行package就可以自動(dòng)生成新的鏡像。
完整的pom.xml如下:文章來源:http://www.zghlxwxcb.cn/news/detail-688796.html
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!-- 鏡像名稱 guoweixin/exam-->
<imageName>${project.artifactId}</imageName>
<!--指定標(biāo)簽-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 基礎(chǔ)鏡像jdk 1.8-->
<baseImage>java</baseImage>
<!-- 制作者提供本人信息 -->
<maintainer>zdk=20477@sina.com</maintainer>
<runs>
<run>mkdir -p /opt/java/</run>
</runs>
<!--切換到/ROOT目錄 -->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
<!-- 指定 Dockerfile 路徑
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
-->
<!--指定遠(yuǎn)程 docker api地址-->
<dockerHost>http://docker:2375</dockerHost>
<!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要復(fù)制的根目錄,${project.build.directory}表示target目錄-->
<directory>${project.build.directory}</directory>
<!--用于指定需要復(fù)制的文件。${project.build.finalName}.jar指的是打包后的jar
包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<executions>
<execution>
<id>build-image</id>
<!--指定此插件在package階段執(zhí)行-->
<phase>package</phase>
<goals>
<!--指定此插件的build的目標(biāo)-->
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
添加上這個(gè)打包插件以后,每執(zhí)行package操作,就會(huì)執(zhí)行docker:build,從而根據(jù)配置信息再次根據(jù)最新打的jar包創(chuàng)建出一個(gè)鏡像,然后可以在idea中運(yùn)行了。文章來源地址http://www.zghlxwxcb.cn/news/detail-688796.html
到了這里,關(guān)于Idea使用Docker插件實(shí)現(xiàn)maven打包自動(dòng)構(gòu)建鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!