本文主要記錄一下本身在idea
上使用docker
發佈spring boot
應用
docker
的遠程訪問idea
安裝docker
插件idea
上鍊接遠程docker
服務spring boot
工程,編寫測試接口pom.xml
添加docker
構建插件Dockfile
文件idea
中構建docker
鏡像本人使用的阿里雲esc
雲服務器,docker
的版本是Docker version 19.03.4, build 9013bf5
java
1.一、修改docker.server
文件,該文件所在的路徑是/lib/systemd/system
spring
cd /lib/systemd/system/ vim docker.server
1.二、修改ExecStart
以下所示docker
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
1.三、從新加載配置文件vim
systemctl daemon-reload
1.四、重啓docker
服務安全
systemctl restart docker.service
1.五、查看端口是否生效 netstat -nlpt
以下圖所示,可見上面配置的2375
端口已經生效
bash
1.六、進入阿里雲ESC
管控臺,添加2375/2375
安全組配置服務器
打開idea
偏好中的插件,在其中搜索docker
插件進行安裝,因爲本人的idea
插件已經包含了docker
插件,跳過此步驟併發
若是顯示Connection succesful
則表示已經和遠程docker服務鏈接成功app
測試接口代碼以下maven
@RestController public class HelloController { @GetMapping(value = "/hello") public String hello() { return "docker & spring boot"; } }
執行maven
打包命令mvn clean package -DskipTests=true
<properties> <java.version>1.8</java.version> <docker.image.prefix>demo</docker.image.prefix> </properties> ...省略 <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.1.0</version> <configuration> <imageName> ${docker.image.prefix}/${project.artifactId} </imageName> <dockerDirectory></dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
6.一、編寫dockerfile
文件
FROM java:8 VOLUME /tmp COPY target/demo-0.0.1-SNAPSHOT.jar demo.jar RUN bash -c "touch /demo.jar" EXPOSE 8089 ENTRYPOINT ["java","-jar","demo.jar"]
6.二、點擊加號按鈕,選擇docker
,選擇dockerfile
,填寫鏡像的標籤以及綁定的端口
點擊運行該dockerfile
上面的操做會進行鏡像的構建,鏡像構建成功以後會出現以下的提示,至此鏡像構建成功併發送至遠程的服務器上,並自動執行了該鏡像。
注意點:因爲我是屢次進行相同標籤的構建,在服務器上執行docker images
操做會出現以下的狀況
其中出現了REPOSITORY
爲<none>
TAG
也是<none>
這一點很不友好,實際的開發中須要注意。