IDEA連接遠程服務器Docker部署Spring Boot項目


開始前的准備工作

擁有一台雲服務器,我的是騰訊雲服務器(CentOS7)

騰訊雲服務器安裝Docker,我的版本是Docker 19.03.9,關於安裝和配置鏡像加速器可以查閱我的另一篇博文:https://www.cnblogs.com/andrew3/p/12941903.html,其中有詳細的講解

Windows上有安裝IDEA

正式開始工作

第一步:配置Docker,開啟遠程訪問(注:僅供學習參考,實際生產環境萬萬不可,會產生很大的安全風險),默認端口是2375,也可以修改為其他端口

1、修改/lib/systemd/system/docker.service文件

vim /lib/systemd/system/docker.service

ExecStart后面追加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

修改完記得寫保存退出命令 :wq

2、重新加載配置文件,重啟docker,使得剛才的配置生效

#重新加載配置文件
systemctl daemon-reload
#重啟docker服務
systemctl restart docker

3、使用curl命令檢查是否開啟

#curl下載docker的服務信息
curl http://127.0.0.1:2375/info

如果有返回說明,就證明開啟成功了,可以看到我的Docker版本,鏡像加速器地址等其他信息,但是這時候遠程可能依然訪問不了

4、配置騰訊雲安全組規則,入站規則中開放2375端口,使得可以遠程訪問(阿里雲都是一樣)

最后點完成就OK了

5、檢查端口是否可以遠程訪問,在本地瀏覽器輸入:http://服務器IP地址:2375/info

 第二步:對項目進行配置,連接遠程docker

1、安裝Docker插件,去Plugins搜索Docker,然后直接安裝就行了,如果,這是我已經安裝過的,安裝完成后重啟IDEA,就有docker插件了

2、配置連接遠程docker,打開Docker插件,新建連接,在Engine API URL處輸入服務器IP地址:2375,然后,不出意外,下方都會出現Connection successful,這樣連接遠程服務器的Docker就成功了

3、編輯項目pom.xml文件,在Spring Boot項目中添加docker-maven-plugin插件

<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--將插件綁定在某個phase執行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--將插件綁定在package這個phase上。也就是說,用戶只需執行mvn package ,就會自動執行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--指定生成的鏡像名-->
                    <imageName>wbb/${project.artifactId}</imageName>
                    <!--指定標簽-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!-- 指定 Dockerfile 路徑 ${project.basedir}:項目根路徑下-->
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <!--指定遠程 docker api地址-->
                    <dockerHost>http://134.175.236.221:2375</dockerHost>
                    <!-- 這里是復制 jar 包到 docker 容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路徑 此處配置的 即對應 target 目錄-->
                            <directory>${project.build.directory}</directory>
                            <!-- 需要包含的 jar包 ,這里對應的是 Dockerfile中添加的文件名 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <!-- 以下兩行是為了docker push到DockerHub使用的。 -->
                    <!--<serverId>docker-hub</serverId>-->
                    <!--<registryUrl>https://index.docker.io/v1</registryUrl>-->
                </configuration>
            </plugin>

4、在項目根目錄下創建Dockerfile文件

Dockerfile文件內容

Dockerfile保留字的解析可以查閱我的另一篇博文:https://www.cnblogs.com/andrew3/p/13033061.html,里面有常用保留字的詳細解析,不過沒有實例,正好可以這個Dockerfile文件進行對照理解

這個Dockerfile文件的內容大概是:

第一行:當前要創建的鏡像是基於java:8這個鏡像的,也就是JDK8,也就是基本的Java運行開發環境肯定要有,這個也可以提前docker pull

第二行:在構建的時候把target目錄下的jar包添加到鏡像中,並改名為app.jar

第三行:鏡像對外開放的端口是8888,這個在后面進行端口映射的時候還要用,一定要記住,當然,沒記住,也可以使用docker history命令去看

第四行:啟動鏡像實例容器時會自動執行:java -jar /app.jar命令,也就是啟動容器時,就啟動了項目,而且不會被啟動容器時添加的命令參數覆蓋

另外其他沒指定的參數,就是默認的,比如登錄容器時默認的路徑是根目錄

5、打包項目,同時會自動構建鏡像,點擊右側的Maven Projects,然后雙擊package

看到如果的信息就表示構建成功了,現在就可以去服務器查看構建的鏡像了

第三步:啟動鏡像實例容器,遠程訪問項目,接下來的步驟可以在IDEA中直接進行,也可以在服務器上進行,為了更加熟悉docker命令,我就在服務器端演示了

關於以下用到的docker命令可以查看我的其他兩篇博文:https://www.cnblogs.com/andrew3/p/12943406.html      https://www.cnblogs.com/andrew3/p/12944452.html,里面有詳細的docker鏡像命令和容器命令的解釋

1、查看所有鏡像:docker images

如圖所示,剛剛構建的鏡像wbb/shop鏡像已經存在了

2、啟動容器:docker run -it -p 8889:8888 --name shop wbb/shop

啟動時,這里的 -p 8889:8888 是端口映射,就是宿主機的8889端口映射到鏡像的8888端口,訪問宿主機的8889端口就相當於訪問到鏡像的8888端口,這個8888就是Dockerfile文件中寫的開放的那個端口,當然,一般應該是指定-d后台運行,我指定前台交互運行,其實,就是為了看畫的這個美女而已,這個身材,夢中女神啊

3、查看容器運行狀態信息:docker ps

可以看到,構建的鏡像實例已經運行了7分鍾多了,端口映射情況,第一個是容器的ID

4、遠程訪問項目:http://服務器IP地址:8889/shop

在此之前,必須確保宿主機的端口8889是開放的,否則可以按照配置安全組規則放行8889端口,另外,/shop是我的項目的虛擬路徑

OK,到此,使用IDEA連接遠程Docker服務部署Spring Boot項目的方法就解釋完了,不足之處,請多指教

附:檢查端口是否開放遠程訪問,也可以使用在線端口掃描工具:http://www.jsons.cn/port/,輸入服務器IP地址和相應的端口掃描就可以了,可以實現多個端口掃描,很方便


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM