欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Idea和Docker如何集成

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

1、前言

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

2、開(kāi)啟docker遠(yuǎn)程

要集成之前,需要我們本機(jī)能夠訪問(wèn)docker服務(wù),也就是我們的docker服務(wù)需要開(kāi)啟遠(yuǎn)程模式。

2.1、配置遠(yuǎn)程訪問(wèn)模式

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

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

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

添加后如下圖所示:

2.2、重啟docker服務(wù)

注意,如果防火墻有設(shè)置端口,這里需要開(kāi)放2375端口。

systemctl daemon-reload 
systemctl restart docker 

2.3、驗(yàn)證

重啟服務(wù)后,可以直接瀏覽器訪問(wèn)http://ip:2375/version。如果能夠成功訪問(wèn)到信息,則說(shuō)明遠(yuǎn)程配置成功。

3、Idea配置Docker

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

3.1、配置證書(shū)登錄

上面介紹的方式是直接開(kāi)放tcp端口登錄,但是這樣回存在安全問(wèn)題。實(shí)際項(xiàng)目中,我們一般還要加上證書(shū)的認(rèn)證。

1.先配置docker.service

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

ExecStart后面追加配置,/etc/docker/certs為生成證書(shū)的路徑,2375為docker開(kāi)啟的遠(yuǎn)程端口:

--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.接著生成認(rèn)證證書(shū)。
生成證書(shū)腳本create_cert.sh,全局替換下公網(wǎng)IP,證書(shū)密碼:

cker TLS 證書(shū)
#!/bin/bash
 
#相關(guān)配置信息
SERVER="${公網(wǎng)IP}"
PASSWORD="${證書(shū)密碼}"
COUNTRY="CN"
STATE="qqq"
CITY="xxx"
ORGANIZATION="sssss"
ORGANIZATIONAL_UNIT="product"
EMAIL="sasdasd"
 
###開(kāi)始生成文件###
echo "開(kāi)始生成文件"
 
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證書(shū),填寫(xiě)配置信息
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證書(shū)私鑰文件
openssl genrsa -out server-key.pem 4096
#生成server證書(shū)請(qǐng)求文件
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證書(shū)及CA密鑰以及上面的server證書(shū)請(qǐng)求文件進(jìn)行簽發(fā),生成server自簽證書(shū)
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證書(shū)RSA私鑰文件
openssl genrsa -out key.pem 4096
#生成client證書(shū)請(qǐng)求文件
openssl req -subj '/CN=${公網(wǎng)IP}' -new -key key.pem -out client.csr
 
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile-client.cnf'
#生成client自簽證書(shū)(根據(jù)上面的client私鑰文件、client證書(shū)請(qǐng)求文件生成)
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
 
#更改密鑰權(quán)限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密鑰權(quán)限
chmod 0444 ca.pem server-cert.pem cert.pem
#刪除無(wú)用文件
rm client.csr server.csr
 
echo "生成文件完成"
###生成結(jié)束###

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

sh create_cert.sh

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

3.重啟docker。

 systemctl daemon-reload
 systemctl restart docker

4.將certs整個(gè)復(fù)制到本地。打開(kāi)Idea的Docker設(shè)置,Certificates folder選擇我們存放的cert目錄即可。

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

4、創(chuàng)建Dockerfile

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

我們需要使用Dockerfile構(gòu)建我們的鏡像到我們的Docker服務(wù)上,并運(yùn)行該程序,最終訪問(wèn)接口打印“success!”。

4.1、編寫(xiě)Dockerfile

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

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

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

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

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

4.2、配置啟動(dòng)項(xiàng)

選擇Dockerfile的方式。

  • 1:選擇我們的Dockerfile文件,
  • 2:填寫(xiě)我們的鏡像名稱,
  • 3:我們?nèi)萜鞯拿Q,
  • 4:填寫(xiě)我們的端口映射,前面的是暴露宿主機(jī)端口,后面的是容器端口。

配置完后,直接運(yùn)行,觀察控制臺(tái)輸出日志信息。

同時(shí),控制臺(tái)的左側(cè)已經(jīng)有了我們剛構(gòu)建的鏡像和容器:

此時(shí),容器已經(jīng)啟動(dòng)!

4.3、訪問(wèn)接口

由于我們映射出來(lái)的端口為8899,所以我們?cè)L問(wèn)http://ip:8899/books/test。

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

相關(guān)文章

  • SpringBoot下獲取resources目錄下文件的常用方法

    SpringBoot下獲取resources目錄下文件的常用方法

    本文詳細(xì)介紹了SpringBoot獲取resources目錄下文件的常用方法,包括使用this.getClass()方法、ClassPathResource獲取以及hutool工具類ResourceUtil獲取,感興趣的可以了解一下
    2024-10-10
  • Java LocalCache 本地緩存的實(shí)現(xiàn)實(shí)例

    Java LocalCache 本地緩存的實(shí)現(xiàn)實(shí)例

    本篇文章主要介紹了Java LocalCache 本地緩存的實(shí)現(xiàn)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-05-05
  • SpringCloud @RefreshScope注解源碼層面深入分析

    SpringCloud @RefreshScope注解源碼層面深入分析

    @RefreshScope注解能幫助我們做局部的參數(shù)刷新,但侵入性較強(qiáng),需要開(kāi)發(fā)階段提前預(yù)知可能的刷新點(diǎn),并且該注解底層是依賴于cglib進(jìn)行代理的,所以不要掉入cglib的坑,出現(xiàn)刷了也不更新情況
    2023-04-04
  • 詳解java基于MyBatis使用示例

    詳解java基于MyBatis使用示例

    這篇文章主要介紹了詳解java基于MyBatis使用示例,對(duì)學(xué)習(xí)MyBatis有一定的幫助,有需要的可以了解一下。
    2016-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:插入排序 Insertion Sort

    Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:插入排序 Insertion Sort

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:插入排序 Insertion Sort,本文直接給出實(shí)例代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-06-06
  • 聊聊為什么要使用BufferedReader讀取File

    聊聊為什么要使用BufferedReader讀取File

    這篇文章主要介紹了為什么要使用BufferedReader讀取File,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Springboot如何使用OSHI獲取和操作系統(tǒng)和硬件信息

    Springboot如何使用OSHI獲取和操作系統(tǒng)和硬件信息

    這篇文章主要介紹了Springboot如何使用OSHI獲取和操作系統(tǒng)和硬件信息問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Spring Boot整合郵件發(fā)送與注意事項(xiàng)

    Spring Boot整合郵件發(fā)送與注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合郵件發(fā)送與注意事項(xiàng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • java并發(fā)編程專題(十一)----(JUC原子類)數(shù)組類型詳解

    java并發(fā)編程專題(十一)----(JUC原子類)數(shù)組類型詳解

    這篇文章主要介紹了JAVA JUC原子類 數(shù)組類型詳解的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Java多線程死鎖與資源限制操作

    Java多線程死鎖與資源限制操作

    這篇文章主要介紹了Java多線程死鎖與資源限制操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09

最新評(píng)論