在Windows上如果沒有安裝docker for windows的話,是沒辦法構建Docker鏡像的。這種情況下,如果要通過fat jar構建docker鏡像的話,只能將fat jar上傳到安裝了docker服務的Linux服務器上,然後編寫Dockerfile構建。這種方式比較麻煩,這裏記錄下如何通過IDEA的Docker插件遠程構建Docker鏡像。
Docker開啓遠程訪問
假如我在CentOS虛擬機上安裝好了Docker,IP地址爲192.168.33.11,我們可以修改Docker的配置,開啓遠程訪問權限:
1 2 |
# 修改Docker配置 vi /lib/systemd/system/docker.service |
修改的地方如下圖所示:
修改保存後,重啓Docker服務:
1 2 |
systemctl daemon-reload systemctl restart docker.service |
重啓後,驗證下2375端口是否是通的:
1 |
curl 192.168.33.11:2375/info |
如果返回了一坨JSON數據,說明🆗。
IDEA使用Docker插件
IDEA Ultimate版本已經默認安裝了Docker插件(沒有的話去插件市場下載安裝下就可以了)。點擊IDEA -> File -> Settings… -> Build,Execution,Deployment -> Docker:
填寫遠程Docker地址,如果顯示Connection Successfully說明連接遠程Docker服務成功。
新建一個簡單的Spring Boot項目,pom如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cc.mrbird</groupId> <artifactId>demo</artifactId> <version>0.0.1</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
然後用maven打包,打包後項目根目錄的target下會有如下fat jar:
在項目根目錄下新建Dockerfile,內容如下所示:
1 2 3 4 5 |
FROM openjdk:8u212-jre MAINTAINER MrBird [email protected] COPY target/demo-0.0.1.jar /demo-0.0.1.jar ENTRYPOINT ["java", "-jar", "/demo-0.0.1.jar"] |
然後點擊IDEA -> Run -> Edit Configrations…
選擇遠程的Docker服務,填寫鏡像標籤內容,點擊保存後,運行:
通過日誌來看,鏡像構建是成功的:
可以看到遠程服務器上已經包含了該Docker鏡像:
可以到服務器上驗證下: