docker 遠程連接 文件看不到_開發提升十倍生產力: IDEA 遠程一鍵部署 Spring Boot 到 Docker...

  • 一、開發前準備
  • 二、新建項目

  • 《Java 2019 超神之路》
  • 《Dubbo 實現原理與源碼解析 —— 精品合集》
  • 《Spring 實現原理與源碼解析 —— 精品合集》
  • 《MyBatis 實現原理與源碼解析 —— 精品合集》
  • 《Spring MVC 實現原理與源碼解析 —— 精品合集》
  • 《Spring Boot 實現原理與源碼解析 —— 精品合集》
  • 《數據庫實體設計合集》
  • 《Java 面試題 —— 精品合集》
  • 《Java 學習指南 —— 精品合集》

Idea是Java開發利器,springboot是Java生態中最流行的微服務框架,docker是時下最火的容器技術,那么它們結合在一起會產生什么化學反應呢?

一、開發前準備

1. Docker的安裝可以參考https://docs.docker.com/install/

2. 配置docker遠程連接端口

  vi /usr/lib/systemd/system/docker.service

找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下圖所示

9ff88c15-d410-eb11-8da9-e4434bdf6706.png

3. 重啟docker

 systemctl daemon-reloadsystemctl start docker

4. 開放端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

5. Idea安裝插件,重啟

a0f88c15-d410-eb11-8da9-e4434bdf6706.png

6. 連接遠程docker

(1) 編輯配置

a1f88c15-d410-eb11-8da9-e4434bdf6706.png

(2) 填遠程docker地址

a2f88c15-d410-eb11-8da9-e4434bdf6706.png

(3) 連接成功,會列出遠程docker容器和鏡像

a4f88c15-d410-eb11-8da9-e4434bdf6706.png

二、新建項目

1. 創建springboot項目

項目結構圖

a5f88c15-d410-eb11-8da9-e4434bdf6706.png

(1) 配置pom文件

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>docker-demo</groupId><artifactId>com.demo</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version><relativePath /></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><docker.image.prefix>com.demo</docker.image.prefix><java.version>1.8</java.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.0.0</version><configuration><dockerDirectory>src/main/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin><plugin><artifactId>maven-antrun-plugin</artifactId><executions><execution><phase>package</phase><configuration><tasks><copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy></tasks></configuration><goals><goal>run</goal></goals></execution></executions></plugin></plugins></build>
<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><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
</dependencies>
</project>

(2) 在src/main目錄下創建docker目錄,并創建Dockerfile文件

FROM openjdk:8-jdk-alpine
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

(3) 在resource目錄下創建application.properties文件

logging.config=classpath:logback.xml
logging.path=/home/developer/app/logs/
server.port=8990

(4) 創建DockerApplication文件

@SpringBootApplication
public class DockerApplication {public static void main(String[] args) {SpringApplication.run(DockerApplication.class, args);}
}

(5) 創建DockerController文件

@RestController
public class DockerController {static Log log = LogFactory.getLog(DockerController.class);@RequestMapping("/")public String index() {log.info("Hello Docker!");return "Hello Docker!";}
}

(6) 增加配置

a6f88c15-d410-eb11-8da9-e4434bdf6706.png

a9f88c15-d410-eb11-8da9-e4434bdf6706.png

aaf88c15-d410-eb11-8da9-e4434bdf6706.png

命令解釋 ?????Image tag : 指定鏡像名稱和tag,鏡像名稱為 docker-demotag1.1 Bind ports : 綁定宿主機端口到容器內部端口。格式為[宿主機端口]:[容器內部端口] ?????Bind mounts : 將宿主機目錄掛到到容器內部目錄中。格式為[宿主機目錄]:[容器內部目錄]。這個springboot項目會將日志打印在容器 /home/developer/app/logs/ 目錄下,將宿主機目錄掛載到容器內部目錄后,那么日志就會持久化容器外部的宿主機目錄中。

(7) Maven打包

acf88c15-d410-eb11-8da9-e4434bdf6706.png

(8) 運行

aef88c15-d410-eb11-8da9-e4434bdf6706.png

b0f88c15-d410-eb11-8da9-e4434bdf6706.png

先pull基礎鏡像,然后再打包鏡像,并將鏡像部署到遠程docker運行

b3f88c15-d410-eb11-8da9-e4434bdf6706.png

這里我們可以看到鏡像名稱為docker-demo:1.1,docker容器為docker-server

(9) 運行成功

b7f88c15-d410-eb11-8da9-e4434bdf6706.png

(10) 瀏覽器訪問

b9f88c15-d410-eb11-8da9-e4434bdf6706.png

(11) 日志查看

bcf88c15-d410-eb11-8da9-e4434bdf6706.png

自此通過idea 部署springboot項目到docker成功!難以想象,部署一個Javaweb項目竟然如此簡單方便!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534234.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java多臺_Java 多態

Java中多態的特性&#xff0c;在學習中就是很難懂&#xff0c;比較抽象的概念。學的時候就犯糊涂&#xff0c;但日后會發現&#xff0c;基礎在日常工作的理解中占有重要的角色。下面&#xff0c;我將用一個代碼實例&#xff0c;回憶和鞏固多態的概念和存在的意義。理解多態&…

快準牌電腦發軟件_做自媒體必備技能,視頻剪輯軟件排名(精品篇)

作者&#xff1a;老馬引流定位&#xff1a;專業專注引流推廣0X00 前言毫不客氣的說&#xff0c;視頻正日益成為社交媒體和營銷的重要組成部分&#xff0c;有越來越多的人參與到視頻剪輯當中來&#xff0c;而其中最為關鍵的就是視頻剪輯軟件。而市面上的視頻剪輯軟件當然也是五花…

ad電阻原理圖_【雕爺學編程】Arduino動手做(2)---光敏電阻模塊

【Arduino】108種傳感器模塊系列實驗&#xff08;02&#xff09;實驗二&#xff1a;光敏電阻傳感器模塊我手里這塊是三針版的&#xff0c;挺秀氣吧光敏電阻是用硫化隔或硒化隔等半導體材料制成的特殊電阻器&#xff0c;其工作原理是基于內光電效應。光照愈強&#xff0c;阻值就…

java從url下載文件_Java從URL下載文件

在這篇文章中將學習如何從java下載URL中的文件。使用java.net.URL openStream()方法從java程序中的URL下載文件。也可以使用Java NIO Channels或Java IO InputStream從URL打開流中讀取數據&#xff0c;然后將它保存到文件中。下面是從指定URL下載的簡單Java程序。它演示了如何在…

怎么判斷一個字符串的最長回文子串是否在頭尾_LeetCode 第 131 號問題:分割回文串...

題目來源于 LeetCode 上第 131 號問題&#xff1a;分割回文串。題目難度為 Medium&#xff0c;目前通過率為 45.8% 。題目描述給定一個字符串 s&#xff0c;將 s 分割成一些子串&#xff0c;使每個子串都是回文串。返回 s 所有可能的分割方案。示例:輸入題目解析首先&#xff0…

java的地位_Java地位無可動搖的12個原因

如今&#xff0c;面對曾經在程序員中被各種新技術掩蓋直至堙滅的技術值得懷念。猶如COBOL這當年被老程序員們尊為神器的語言如今也基本沒有價值。而Java作為現代程序員的中堅力量在這點上會不會成為下一個COBOL&#xff1f;有關JAVA的技術賣出多少本書已經是一個很久遠的記憶了…

hystrix threadpool coresize_Hystrix斷路器 - 求知若渴的蝸牛

Hystrix介紹在微服務場景中&#xff0c;通常會有很多層的服務調用。如果一個底層服務出現問題&#xff0c;故障會被向上傳播給用戶。我們需要一種機制&#xff0c;當底層服務不可用時&#xff0c;可以阻斷故障的傳播。這就是斷路器的作用。他是系統服務穩定性的最后一重保障。在…

ionic保存到mysql_ionic sqlite 存取數據封裝(兼容真機與webkit瀏覽器)

不管是真機還是H5&#xff0c;都有提供sqlite數據庫進行存儲數據。那么我們只要封裝好函數就能隨意調用了。如果只是存儲簡單的鍵值對形式的話&#xff0c;ionic官網也提供了一個兼容網頁的storage&#xff0c;https://ionicframework.com/docs/storage&#xff0c;但只能key/v…

sql plus 表的總記錄數是多少_直播回顧 | 億級并發絲毫不虛,TDSQL-SQL引擎是如何煉成的...

騰訊云數據庫國產數據庫專題線上技術沙龍正在火熱進行中&#xff0c;3月19日唐顥的分享已經結束&#xff0c;沒來得及參與的小伙伴不用擔心&#xff0c;以下就是直播的視頻和文字回顧。關注“騰訊云數據庫”公眾號&#xff0c;回復“0319唐顥”&#xff0c;即可下載直播分享PPT…

java plug機制_插件機制 - OpooPress - 基于 Java 的靜態博客生成器

插件機制通過插件機制可以很容易的擴展 OpooPress 博客系統的功能。 Plugin 定義如下public interface Plugin{/**** param registry*/void initialize(Registry registry);}Registry 接口定義如下&#xff1a;public interface Registry {Site getSite();void registerConvert…

運放放大倍數計算公式_19.運算放大器的特性與應用,不得不掌握的知識點(一)...

運算放大器&#xff0c;簡稱“運放”&#xff0c;是電力電子中最重要的器件之一&#xff0c;主要作用為&#xff1a;信號放大、信號運算、信號處理、波形的產生和變換。一、運算放大器的內部結構集成運算放大器內部結構集成運算放大器內部一般由四個單元組成&#xff0c;各單元…

java選項設置_java環境配置

javac無法執行檢查&#xff1a;看看java 相關的java相關路徑有沒有多余的符號&#xff0c;比如多出分號&#xff0c;逗號(筆者上面是正確的路徑展示形式)Win10下 Java環境變量配置首先&#xff0c;你應該已經安裝了 Java 的 JDK 了(如果沒有安裝JDK&#xff0c;請跳轉到此網址&…

teleport 組件的作用_人臉識別綜述! 覆蓋人臉檢測,預處理和特征表示三大核心組件!...

The Elements of End-to-end Deep Face Recognition: A Survey of Recent Advances 人臉識別是計算機視覺社區中最基礎和歷史悠久的話題之一。隨著深度卷積網絡和大尺度數據集發展&#xff0c;深度人臉識別取得極大進步并且應用到許多領域。給定一個自然圖像或者視頻幀作為輸入…

itunes未能連接到iphone_iTunes下載_蘋果iTunes官方下載「32位|64位」

iTunes是蘋果官方推出的Apple官方數字媒體播放與管理應用程序。蘋果iTunes官方下載中文版能將您所有的媒體文件和應用收藏導入iPad和iPhone&#xff0c;您還可以通過它購買應用、數字音樂、視頻、電視及游戲等等。iTunes是目前最專業的iPad和iPhone管理應用工具。本站提供蘋果i…

java短視頻上傳阿里云流程_短視頻上傳

啟動上傳前需要設置上傳回調&#xff0c;需要實現VODSVideoUploadCallback回調&#xff1a;vodsVideoUploadClient.uploadWithVideoAndImg(vodSessionCreateInfo, new VODSVideoUploadCallback() {Overridepublic void onUploadSucceed(String videoId, String imageUrl) {//上…

feko軟件_計算電磁學各種方法和電磁仿真軟件簡述

計算電磁學中有眾多不同的算法&#xff0c;如時域有限差分法(FDTD)、時域有限積分法(FITD)、有限元法(FE)、矩量法(MoM)、邊界元法(BEM)、 譜域法(SM)、傳輸線法(TLM)、模式匹配法(MM)、橫向諧振法(TRM)、線方法(ML)和解析法等等。在頻域&#xff0c;數值算法有&#xff1a;有限…

出租車管理系統java_基于jsp的出租車管理系統-JavaEE實現出租車管理系統 - java項目源碼...

基于jspservletpojomysql實現一個javaee/javaweb的出租車管理系統, 該項目可用各類java課程設計大作業中, 出租車管理系統的系統架構分為前后臺兩部分, 最終實現在線上進行出租車管理系統各項功能,實現了諸如用戶管理, 登錄注冊, 權限管理等功能, 并實現對各類出租車管理系統相…

cad常青藤插件_原來還有這么好用的CAD插件,半小時就能做完一張圖

作為一名優秀的設計師或者建筑師&#xff0c;如果你沒用過逆天的CAD插件&#xff0c;我覺得不行&#xff0c;所以下面小編就給大家推薦幾個非常好用的CAD插件&#xff0c;希望可以幫助大家大幅提升工作效率。接下來小編就帶大家一起看看吧&#xff01;1、天正建筑天正建筑顧名思…

java 停止線程播放音頻_Notification?播放?關閉?聲音----轉載

NotificationPlayer.java定義一個播放Notification聲音的player&#xff0c;本質上仍然是一個MediaPlayer&#xff0c;這個是多線程編程的很好的例子public class NotificationPlayer implements OnCompletionListener {//發送播放和停止的cmdprivate static final int PLAY 1…

java main是標識符嗎_main方法的認識 、通配符、java的注釋、java的符(標識符)【Java基礎】...

main方法的認識print()和println()的區別print()打印不換行println()打印并換行通配符\n換行符\t制表符都應用于控制臺\n換行\t以表格的形式顯示System.out.println("----------英雄排行榜------------");System.out.println("\t|編號\t|名字\t|戰力值\t|"…