maven進(jìn)行docker打包與推送
- docker.host 表示本地的docker主機,tcp走2375端口
- docker.registry 表示私服地址,本例使用harbor做為私服
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<configuration>
<!-- Docker本地主機 -->
<dockerHost>${docker.host}</dockerHost>
<!-- Docker 鏡像私服-->
<registry>${docker.registry}</registry>
<!-- 認(rèn)證信息-->
<authConfig>
<push>
<username>${docker.username}</username>
<password>${docker.password}</password>
</push>
</authConfig>
<images>
<image>
<name>${docker.registry}/${docker.namespace}/${project.name}:${project.version}</name>
<build>
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
</build>
</image>
</images>
</configuration>
</plugin>
- 本地docker主機需要開啟2375這個tcp端口
# 打開配置文件
vi /usr/lib/systemd/system/docker.service
# 添加2375端口
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
# 重新加載配置文件并重啟服務(wù)
systemctl daemon-reload
systemctl restart docker
- 通過plugins的docker插件,進(jìn)行build和push即可,需要注意本地docker主機與私服之間需要進(jìn)行daemon.json的配置
{
"registry-mirrors": ["https://ay50ucm9.mirror.aliyuncs.com","http://f2d6cb40.m.daocloud.io"],
"insecure-registries":["http://192.168.xx.xxx:8888"]
}
mvn clean package docker:stop docker:remove docker:build docker:run
# 或者直接打包推送:mvn docker:build docker:push
[INFO] --- docker-maven-plugin:0.40.1:push (default-cli) @ lind-fast-demo ---
[INFO] DOCKER> The push refers to repository [192.168.60.137:8888/lind-fast/lind-fast-demo]
edf103f27075: Preparing
9f6bd6be39e5: Preparing
d3f8c53ca74a: Preparing
f9a0984f718a: Preparing
2104e5b926f6: Preparing
50644c29ef5a: Preparing
50644c29ef5a: Waiting
edf103f27075: Pushing [> ] 512B/26.28kB
9f6bd6be39e5: Pushing 2.048kB
edf103f27075: Pushing [==================================================>] 28.67kB
2104e5b926f6: Mounted from moxm/java
d3f8c53ca74a: Mounted from moxm/java
f9a0984f718a: Mounted from moxm/java
edf103f27075: Pushed
9f6bd6be39e5: Pushed
50644c29ef5a: Mounted from moxm/java
[INFO] DOCKER> 1.0.0: digest: sha256:47e560ca99e91aa73770a86991f68167510724d8a1da2820d8d3e24f64c85ddd size: 1575
[INFO] DOCKER> Temporary image tag skipped. Target image '192.168.60.137:8888/lind-fast/lind-fast-demo:1.0.0' already has registry set or no registry is available
[INFO] DOCKER> Pushed 192.168.60.137:8888/lind-fast/lind-fast-demo:1.0.0 in 3 seconds
- 其它問題
如果你的docker:build失敗,提示你的基礎(chǔ)鏡像不存在,我們可以把基礎(chǔ)鏡像添加到harbor中,模擬成為harbor中的鏡像就可以了