Docker之IntelliJ IDEA部署SpringBoot應用到Docker

Docker開啓遠程訪問java

vim /usr/lib/systemd/system/docker.service
在 ExecStart=/usr/bin/dockerd-current 後 增長 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
最終爲 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sockspring

systemctl daemon-reload
systemctl restart dockerdocker

查看端口是否開啓
netstat -nlptvim

測試2375是否通
curl http://127.0.0.1:2375/infowindows

打開2375防火牆
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reloadspringboot

IntelliJ IDEA安裝Docker插件
搜索docker安裝並重啓bash

重啓後繼續打開File->settings->Build...->Docker->點擊+號->選中TCP socket->輸入你服務器的ip和docker遠程鏈接的端口號2375,name能夠隨便取名,好比docker-connect-test
輸入後會自動創建鏈接,若是這時候你看到顯示鏈接成功後->apply->ok.
若是顯示鏈接失敗,請關閉windows防火牆,並確認服務器端防火牆的2375端口是否已開放且處於監聽狀態(netstat -tnl 去找一下是否有2375且顯示Listen狀態)
成功後能夠在IDEA左下角找到Docker,或者經過依次打開view -> toolwindows -> Docker打開
點擊左上角的運行按鈕,便可鏈接到服務器的docker服務器

Spring Boot服務docker部署app

新建一個Spring Boot工程,設置端口爲8080,在工程裏寫一個REST接口,以下,簡單返回一個字符串dom

@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
  return "hello world";
}
}

 

在項目應用根目錄下增長一個Dockerfile文件,內容以下

FROM java:8
VOLUME /tmp
ADD target/SpringBootTest-1.0.0.jar SpringBootTest-1.0.0.jar
RUN bash -c 'touch /SpringBootTest-1.0.0.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/SpringBootTest-1.0.0.jar"]

 

修改pom文件,添加properties,添加plugin

<properties>
<!-- 鏡像前綴 -->
<docker.image.prefix>zns</docker.image.prefix>
</properties>

 

<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!--<dockerHost>http://docker服務器ip:2375</dockerHost> --> 
<dockerDirectory></dockerDirectory> 
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

 

點擊run->edit configuration,增長一個Docker配置,選擇dockerfile類型,在彈出的界面填寫信息
name能夠隨便取名
Server選擇剛剛建立的docker-connect-test
Dockerfile選擇dockerfile文件的位置
Image tag填寫鏡像名稱 好比zns/springboottest:1.0.0
Container name填寫容器名稱 好比zns-springboottest
Bind ports填寫服務器主機端口和docker容器端口映射 好比 18080:8080,注意這裏的8080需跟EXPOSE 8080設置的端口一致
點擊肯定

而後啓動SpringBoot應用和剛剛配置的docker應用


服務器打開18080防火牆
firewall-cmd --zone=public --add-port=18080/tcp --permanent
firewall-cmd --reload

訪問服務器ip加上18080端口測試

相關文章
相關標籤/搜索