使用docker-maven-plugin外掛構建和推送Docker映像
阿新 • • 發佈:2018-12-26
需求
我用idea
寫的程式碼,然後,利用docker-maven-plugin
外掛,希望執行通過mvn clean package docker:build
命令,將程式碼構建成Docker映象
,直接推送到我的本地虛擬機器centos
下的docker環境下,可以直接用docker命令
執行。
新增外掛
pom.xml 檔案新增docker-maven-plugin
外掛
<plugin>
<groupId>com.spotify</groupId>
<artifactId >docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>olysa/bootdo:1.0.2</imageName>
<baseImage>java</baseImage>
<entryPoint> ["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<dockerHost>http://192.168.56.102:2375</dockerHost>
<resources>
<resource>
<targetPath>/</targetPath>
<directory >${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<dockerHost>http://192.168.56.102:2375</dockerHost>
這裡要注意:
1. 有的文件用的https
協議,我這本地的,如果用https
協議,會報Unrecognized SSL message, plaintext connection?
,根據自己的情況而定。
2. http://192.168.56.102:2375
需要填寫你的centos
ip地址,並且防火牆啟用centos上的2375埠
。如何開放埠請移步iptables 開放防火牆埠
docker開啟遠端訪問
如果沒有開啟遠端訪問,會報
Connect to 192.168.56.102:2375 [/192.168.56.102] failed: Connection refused: connect
- 在
/usr/lib/systemd/system/docker.service
,配置遠端訪問。主要是在[Service]
這個部分,加上下面兩個引數:
cd /usr/lib/systemd/system
vi docker.service
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
- docker重新讀取配置檔案,重新啟動docker服務。
systemctl daemon-reload //重新讀取配置檔案
systemctl restart docker //重新啟動服務
構建Docker映象
- 準備工作都最配好了,在idea工程下
pom.xm
檔案目錄下,執行以下程式碼,構建Docker映象。
mvn clean package docker:build
安靜等一段時間構建完成後,去centos
下,檢視映象。執行docker images
:
可以看到,配置的程式碼已經構建成映象檔案,並上傳到虛擬機器裡面了。
啟動映象
docker run -d -p 8000:8089 olysa/bootdo:1.0.2 //8089是我程式碼中的port,8000是對映埠
再訪問 http://192.168.56.102:8000
之前,記得開啟防火牆8000
埠。
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT //當前生效,重啟虛擬機器後又失效了
涉及到的一些docker命令
就不多解釋了,你可以參考我的另一篇文章 Docker常用命令