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

IDEA集成Docker實現(xiàn)一鍵部署的詳細過程

 更新時間:2022年08月25日 09:18:53   作者:小丑的自我修養(yǎng)  
這篇文章主要介紹了IDEA集成Docker實現(xiàn)一鍵部署,Docker基于Windows集成IDEA,本文分步驟通過圖文實例代碼相結合給大家介紹的非常詳細,需要的朋友可以參考下

在和前端聯(lián)調的過程中,然后每次電腦使用IDEA將服務啟動后不能動,然后自己想改變代碼后重啟可能導致前端那邊報錯,所以為了給前端提供聯(lián)調的服務的同時,我自己還可以正常工作,于是便想到了使用docker的方式,這樣就可以達到了兩全其美,何樂而不為。

1.初識Docker

Docker的三個基本概念:

  • Dockerfile:鏡像構建的模板,描述鏡像構建的步驟,通常是拉去一些文件和依賴;
  • image:鏡像,一個文件,用來創(chuàng)建容器。
  • container:容器,一個可運行的鏡像實例,里面運行著一個完整的操作系統(tǒng),可以做一切你當前操作系統(tǒng)可以做的事情。

從我的理解對上述三者做一個類比:dockerfile就是一個混凝土配比說明書(原材料,步驟等),根據(jù)該說明書攪拌出混凝土(鏡像),然后基于混凝土可以做成一個一個房間(容器),每個房間都是相互獨立,生活著不同的人。

對于我們開發(fā)人員來說,Docker 可以做到:

  • 編寫本地代碼
  • 使用 Docker 將程序推送到測試環(huán)境
  • 發(fā)現(xiàn) bug 后在開發(fā)環(huán)境下修復,重新部署到測試環(huán)境測試
  • 測試完成將代碼合并到發(fā)布的代碼分支

2.Docker基于Windows集成IDEA

2.1 在window上安裝docker

注意一點:一定要把windows的WSL開啟后再安裝,否則會導致docker啟動不成功。

2.2設置docker配置

  • 開放2375端口,勾上該選項

image1

新增host:[ “0.0.0.0:2375”]

{
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "hosts": [
    "tcp://0.0.0.0:2375"
  ],
  "insecure-registries": [],
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

2.3 IDEA 連接docker 測試

  • 老版本IDEA需要安裝docker的插件,新版本的話不用安裝直接使用

image2

連接docker測試

image3

Note:如果是本地的應用可以使用tcp://localhost:2375連接;如果是局域網的其他機器可以使用局域網ipv4連接;如果是遠程機器的話使用公網ip連接。

如上圖中出現(xiàn)Connection successful為成功標志

// 當使用ip訪問時連接不成功的話在windows的admin權限終端窗口執(zhí)行如下命令,端口代理
netsh interface portproxy add v4tov4 listenport=2375 connectaddress=127.0.0.1 connectport=2375 listenaddress=<your ipv4> protocol=tcp

//對2375端口添加防火墻規(guī)則
netsh advfirewall firewall add rule name="docker_daemon" dir=in action=allow protocol=TCP localport=2375

說說小編的個人經歷:完成了宿主機配置后,在局域網內的其他機器都是可以連接docker的,但是第二天早上再次連接就不行了,然后搞了好幾天還是不行,突然一個偶然的機會又能重新連接上了。

//執(zhí)行下述的命令 然后查看2375的端口
netsh interface portproxy show all

//刪除所有的端口代理
netsh interface portproxy delete v4tov4   listenaddress=<your ipv4> listenport=2375

//重新執(zhí)行端口代理
netsh interface portproxy add v4tov4 listenport=2375 connectaddress=127.0.0.1 connectport=2375 listenaddress=<your ipv4> protocol=tcp

在瀏覽器中訪問yourip:2375/version測試,如果有數(shù)據(jù)返回那就是連接成功了。

2.4啟動Springboot應用測試

  • 構建測試項目
@RestController
public class TestController {

    @GetMapping("/get/hello")
    public String get(){
        return "Hello World";
    }
}

@SpringBootApplication
public class SpringBootWithDockerStarter {

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

在項目中添加Dockerfile文件

#這是基礎鏡像
FROM java:8
VOLUME /tmp
#復制jar包到鏡像中,并且將名字改成app.jar
ADD ./target/SpringBootWithDocker-1.0-SNAPSHOT.jar DemoApp.jar
#在容器啟動的時候運行命令,來啟動我們的項目(這其實就是一段Linux命令,該命令可以在服務啟動時加一些參數(shù))
ENTRYPOINT ["sh", "-c", "java -jar DemoApp.jar"]

上述注意一點:該文件的放置位置會影響ADD后面的尋找jar包的路徑,因為我后面在build鏡像時出現(xiàn)找不到jar的報錯,原因就是我將該Dockerfile放在了該項目的某一個文件夾下了。
項目結構如下:

添加maven的docker打包插件

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin><!--制作docker鏡像的maven插件-->
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <imageName>${project.artifactId}</imageName><!--鏡像名,注意:這里的鏡像名一定要小寫,如果你的應用名字是大寫會報錯的-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <dockerDirectory>${project.basedir}</dockerDirectory><!--Dockerfile所在的目錄-->
                    <dockerHost>http://127.0.0.1:2375</dockerHost><!--docker所在的宿主機地址,或者填寫http://yourip:2375-->
                    <resources>
                        <resource><!--這里配置的就是打包后jar所在的位置-->
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory><!--構建的class文件路徑 一般是target-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

打包該應用程序

image

打包后會發(fā)現(xiàn)target目錄下有jar包出現(xiàn)

配置Docker,此處配置要和pom文件最終生成的名字tag要保持一直

image5

部署項目后使用localhost:8080/get/hello訪問返回數(shù)據(jù)即為成功

image

docker控制臺中文亂碼修復[可選]

image7

//添加字符參數(shù)后 重啟IDEA
-Dfile.encoding=UTF-8
-Dsun.jnu.encoding=UTF-8

3.Docker基于Linux集成IDEA

待更新。。。

4.連接宿主機redis服務

//添加Redis依賴
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
//添加Redis配置
# spring default config
spring.redis:
  host: your-ipv4 //宿主機的ip,如果你當前啟動項目的docker沒有安裝redis,此處填localhost會報錯
  port: 6379
  timeout: 5000
  lettuce.pool:
    # max connection number in connection poll, default number is 8
    max-active: 20
    # max wait time, default -1, this means there is no restrict. Unit: ms
    max-wait: -1
    # max idle connection number, default is 8
    max-idle: 8
    # min idle connection number, default is 0
    min-idle: 0

@Configuration
public class RedisConfig {

    @Bean(name = "redisTemplate")
    public StringRedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {

        StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
        stringRedisTemplate.setConnectionFactory(redisConnectionFactory);
        return stringRedisTemplate;
    }
}

@RestController
@RequestMapping("/docker")
public class DockerController {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @GetMapping("/redis/set")
    public String setRedisData(@RequestParam("value") String value){
        String key = "docker";
        stringRedisTemplate.opsForValue().set(key, value);
        String strValue = stringRedisTemplate.opsForValue().get(key);
        return strValue;
    }
}

//重新打包然后點擊docker進行運行

5.連接docker中redis服務

獲取redis的密碼

image8

  • 使用命令連接容器:docker exec -it containerName /bin/bash
  • 使用命令連接redis客戶端:redis-cli
  • 使用auth {password} 授權成功 可以進行操作

在對spring-boot項目中修改配置之前,我們找到docker中redis在宿主機的端口號,這樣我們才能保證連接成功。

修改項目中的配置

//添加Redis配置
# spring default config
spring.redis:
  host: your-ipv4 //宿主機的ip,如果你當前啟動項目的docker沒有安裝redis,此處填localhost會報錯
  port: 49153 //和上面圖片的端口保持一致   <----第一處修改
  password: redispw //添加密碼    <----第二處修改
  timeout: 5000
  lettuce.pool:
    # max connection number in connection poll, default number is 8
    max-active: 20
    # max wait time, default -1, this means there is no restrict. Unit: ms
    max-wait: -1
    # max idle connection number, default is 8
    max-idle: 8
    # min idle connection number, default is 0
    min-idle: 0

//重新打包進行部署

到此這篇關于IDEA集成Docker實現(xiàn)一鍵部署的文章就介紹到這了,更多相關idea docker部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • docker使用Dockerfile構建鏡像的方法

    docker使用Dockerfile構建鏡像的方法

    這篇文章主要介紹了docker使用Dockerfile構建鏡像的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 清理docker在var目錄下的大量空間占用問題

    清理docker在var目錄下的大量空間占用問題

    這篇文章主要介紹了如何清理docker在var目錄下的大量空間占用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 清除docker無用鏡像實現(xiàn)過程

    清除docker無用鏡像實現(xiàn)過程

    文章介紹了查看和清理Docker占用資源的方法,包括使用docker container ls、image ls、volume ls等命令了解資源狀態(tài),并通過docker system prune刪除未使用容器、鏡像、網絡及緩存,同時強調刪除鏡像前需先移除引用容器
    2025-08-08
  • 查看和更改Docker容器IP地址的操作指南

    查看和更改Docker容器IP地址的操作指南

    Docker 提供了靈活的網絡配置能力,允許用戶查看和更改容器的 IP 地址,這在構建微服務架構、進行網絡調試、或需要對網絡流量進行精細控制時尤為重要,本文將詳細介紹如何查看和更改 Docker 容器的 IP 地址,需要的朋友可以參考下
    2025-09-09
  • 不使用sudo 執(zhí)行Docker命令的方法

    不使用sudo 執(zhí)行Docker命令的方法

    本篇文章主要介紹了不使用sudo 執(zhí)行Docker命令的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • docker之如何查看正在運行的容器

    docker之如何查看正在運行的容器

    這篇文章主要介紹了docker之如何查看正在運行的容器問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • docker創(chuàng)建容器的兩種實現(xiàn)方式(交互式與守護式)

    docker創(chuàng)建容器的兩種實現(xiàn)方式(交互式與守護式)

    這篇文章主要介紹了docker創(chuàng)建容器的兩種實現(xiàn)方式(交互式與守護式),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • docker自定義網絡從入門到實踐

    docker自定義網絡從入門到實踐

    Docker 網絡模式決定了容器之間、容器與宿主機之間的通信方式,掌握網絡機制是理解容器互聯(lián)互通的關鍵,本文給大家介紹docker自定義網絡從入門到實踐,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • 超詳細Docker Desktop下安裝rocketmq的教程

    超詳細Docker Desktop下安裝rocketmq的教程

    這篇文章主要介紹了Docker Desktop下安裝rocketmq,本文內容通過圖文操作命令給大家講解的非常詳細,需要的朋友可以參考下
    2021-10-10
  • 淺析SpringBoot打包上傳到docker并實現(xiàn)多實例部署(IDEA版)

    淺析SpringBoot打包上傳到docker并實現(xiàn)多實例部署(IDEA版)

    這篇文章主要介紹了SpringBoot打包上傳到docker并實現(xiàn)多實例部署(IDEA版),本文通過圖文并茂實例詳解的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論

徐闻县| 定州市| 子长县| 南丰县| 金平| 鄂伦春自治旗| 将乐县| 平南县| 诸暨市| 长子县| 高唐县| 南皮县| 普兰店市| 洮南市| 湖州市| 辽阳市| 德兴市| 怀柔区| 陕西省| 呼图壁县| 都江堰市| 磐石市| 江北区| 唐河县| 泰宁县| 蒲江县| 龙游县| 尖扎县| 社旗县| 文山县| 普兰店市| 雷州市| 沙雅县| 建平县| 施秉县| 乌兰浩特市| 历史| 喀喇| 徐州市| 方城县| 浙江省|