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端口測試