最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Idea和Docker如何集成

 更新時間:2023年10月16日 11:59:38   作者:Major_xx  
今天就介紹下idea和Docker如何集成,要集成之前,需要我們本機能夠訪問docker服務,也就是我們的docker服務需要開啟遠程模式,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

1、前言

上一節(jié)中,我們介紹了Dockerfile的方式構建自己的鏡像。但是在實際開發(fā)過程中,一般都會和開發(fā)工具直接集成,如Idea。今天就介紹下idea和Docker如何集成。

2、開啟docker遠程

要集成之前,需要我們本機能夠訪問docker服務,也就是我們的docker服務需要開啟遠程模式。

2.1、配置遠程訪問模式

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

添加-H tcp://0.0.0.0:2375即可。

  • -H:即添加host。
  • tcp:表示tcp協(xié)議連接。
  • 0.0.0.0: 表示不限制遠程訪問ip。
  • 2375:表示遠程訪問端口。

添加后如下圖所示:

2.2、重啟docker服務

注意,如果防火墻有設置端口,這里需要開放2375端口。

systemctl daemon-reload 
systemctl restart docker 

2.3、驗證

重啟服務后,可以直接瀏覽器訪問http://ip:2375/version。如果能夠成功訪問到信息,則說明遠程配置成功。

3、Idea配置Docker

打開idea的設置,F(xiàn)ile -> Settings -> Build, Execution, Deployment -> Docker
在Connect to Docker daemon with:選擇TCP socket。并在Engine API URL輸入tcp://ip:2375,ip即我們虛擬機中ip。
輸入后,下方顯示Connection successful,即說明連接成功。

3.1、配置證書登錄

上面介紹的方式是直接開放tcp端口登錄,但是這樣回存在安全問題。實際項目中,我們一般還要加上證書的認證。

1.先配置docker.service

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

ExecStart后面追加配置,/etc/docker/certs為生成證書的路徑,2375為docker開啟的遠程端口:

--tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.接著生成認證證書。
生成證書腳本create_cert.sh,全局替換下公網(wǎng)IP,證書密碼:

cker TLS 證書
#!/bin/bash
 
#相關配置信息
SERVER="${公網(wǎng)IP}"
PASSWORD="${證書密碼}"
COUNTRY="CN"
STATE="qqq"
CITY="xxx"
ORGANIZATION="sssss"
ORGANIZATIONAL_UNIT="product"
EMAIL="sasdasd"
 
###開始生成文件###
echo "開始生成文件"
 
mkdir -pv /etc/docker/certs
 
#切換到生產(chǎn)密鑰的目錄
cd /etc/docker/certs 
#生成ca私鑰(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca-key.pem 4096
#生成ca證書,填寫配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"
 
#生成server證書私鑰文件
openssl genrsa -out server-key.pem 4096
#生成server證書請求文件
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
 
sh -c 'echo subjectAltName = IP:0.0.0.0,IP:${公網(wǎng)IP},IP:127.0.0.1 >> extfile.cnf'
sh -c 'echo extendedKeyUsage = serverAuth >> extfile.cnf'
 
#使用CA證書及CA密鑰以及上面的server證書請求文件進行簽發(fā),生成server自簽證書
openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial  -out server-cert.pem -extfile extfile.cnf
 
#生成client證書RSA私鑰文件
openssl genrsa -out key.pem 4096
#生成client證書請求文件
openssl req -subj '/CN=${公網(wǎng)IP}' -new -key key.pem -out client.csr
 
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile-client.cnf'
#生成client自簽證書(根據(jù)上面的client私鑰文件、client證書請求文件生成)
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca-key.pem  -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem  -extfile extfile-client.cnf
 
#更改密鑰權限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密鑰權限
chmod 0444 ca.pem server-cert.pem cert.pem
#刪除無用文件
rm client.csr server.csr
 
echo "生成文件完成"
###生成結束###

直接執(zhí)行該腳本:

sh create_cert.sh

執(zhí)行成功后,在/etc/docker/certs可以看到我們生成的證書。

3.重啟docker。

 systemctl daemon-reload
 systemctl restart docker

4.將certs整個復制到本地。打開Idea的Docker設置,Certificates folder選擇我們存放的cert目錄即可。

可以看到顯示Cnnection successful,表示連接成功。

4、創(chuàng)建Dockerfile

我們繼續(xù)使用上一篇的dockerfile-springboot工程,在該工程下添加Dockerfile文件。

我們需要使用Dockerfile構建我們的鏡像到我們的Docker服務上,并運行該程序,最終訪問接口打印“success!”。

4.1、編寫Dockerfile

# 指定基礎鏡像作為該容器的基礎環(huán)境,如springboot應用最起碼得有jdk環(huán)境
FROM openjdk:17

# 執(zhí)行維護者的信息
MAINTAINER xx

# 設定時區(qū)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 創(chuàng)建一個存放該工程的目錄,將項目target目錄下的jar文件復制到容器中的目錄下
RUN mkdir -p /mydata/project
COPY target/springboot_08_ssmp-0.0.1-SNAPSHOT.jar /mydata/project/springboot_08_ssmp.jar

# 執(zhí)行啟動
ENTRYPOINT ["java", "-jar", "/mydata/project/springboot_08_ssmp.jar"]

4.2、配置啟動項

選擇Dockerfile的方式。

  • 1:選擇我們的Dockerfile文件,
  • 2:填寫我們的鏡像名稱,
  • 3:我們容器的名稱,
  • 4:填寫我們的端口映射,前面的是暴露宿主機端口,后面的是容器端口。

配置完后,直接運行,觀察控制臺輸出日志信息。

同時,控制臺的左側已經(jīng)有了我們剛構建的鏡像和容器:

此時,容器已經(jīng)啟動!

4.3、訪問接口

由于我們映射出來的端口為8899,所以我們訪問http://ip:8899/books/test。

到此這篇關于Idea集成Docker的文章就介紹到這了,更多相關Idea集成Docker內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決spring結合mybatis時一級緩存失效的問題

    解決spring結合mybatis時一級緩存失效的問題

    這篇文章主要介紹了解決spring結合mybatis時一級緩存失效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • springboot @validated List校驗失效問題

    springboot @validated List校驗失效問題

    這篇文章主要介紹了springboot @validated List校驗失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java動態(tài)修改配置即時生效的方式WatchService

    Java動態(tài)修改配置即時生效的方式WatchService

    這篇文章給大家分享了Java動態(tài)修改配置即時生效的方式WatchService的相關知識點內容,有興趣的朋友可以參考學習下。
    2018-06-06
  • 淺析Spring工廠的反射和配置文件

    淺析Spring工廠的反射和配置文件

    這篇文章主要介紹了淺析Spring工廠的反射和配置文件,spring是通過反射和配置文件的方式來獲取 JavaBean 對象,需要的朋友可以參考下
    2023-04-04
  • java獲取服務器基本信息的方法

    java獲取服務器基本信息的方法

    這篇文章主要介紹了java獲取服務器基本信息的方法,涉及java獲取系統(tǒng)CPU、內存及操作系統(tǒng)等相關信息的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 一文詳解如何配置MyBatis實現(xiàn)打印可執(zhí)行的SQL語句

    一文詳解如何配置MyBatis實現(xiàn)打印可執(zhí)行的SQL語句

    在MyBatis中,動態(tài)SQL是一個強大的特性,允許我們在XML映射文件或注解中編寫條件語句,根據(jù)運行時的參數(shù)來決定SQL的具體執(zhí)行內容,這篇文章主要給大家介紹了關于如何配置MyBatis實現(xiàn)打印可執(zhí)行的SQL語句的相關資料,需要的朋友可以參考下
    2024-08-08
  • Java多線程wait()和notify()方法詳細圖解

    Java多線程wait()和notify()方法詳細圖解

    wait()和notify()是直接隸屬于Object類,也就是說所有對象都擁有這一對方法,下面這篇文章主要給大家介紹了關于Java多線程wait()和notify()方法詳細圖解的相關資料,需要的朋友可以參考下
    2022-10-10
  • 獲取JsonObject某一未知key的值操作

    獲取JsonObject某一未知key的值操作

    這篇文章主要介紹了獲取JsonObject某一未知key的值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • MybatisPlus為何可以不用@MapperScan詳解

    MybatisPlus為何可以不用@MapperScan詳解

    這篇文章主要給大家介紹了關于MybatisPlus為何可以不用@MapperScan的相關資料,文中通過圖文介紹的非常詳細,對大家學習或者使用MybatisPlus具有一定的參考學習價值,需要的朋友可以參考下
    2023-04-04
  • Idea springboot如何實現(xiàn)批量啟動微服務

    Idea springboot如何實現(xiàn)批量啟動微服務

    這篇文章主要介紹了Idea springboot如何實現(xiàn)批量啟動微服務,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05

最新評論

珠海市| 澄城县| 建昌县| 东城区| 绥宁县| 宁津县| 龙泉市| 恩施市| 绩溪县| 抚州市| 盈江县| 九龙坡区| 图木舒克市| 忻州市| 莱西市| 辰溪县| 凤翔县| 金昌市| 菏泽市| 曲松县| 那曲县| 河东区| 布尔津县| 宜君县| 泉州市| 龙海市| 襄汾县| 勐海县| 青龙| 崇信县| 金溪县| 汽车| 西吉县| 龙山县| 旬邑县| 河津市| 新余市| 西宁市| 苍南县| 曲阜市| 平定县|