Docker運(yùn)維筆記三:IDEA使用Docker插件遠(yuǎn)程部署SpringBoot

探索學(xué)習(xí)SpringBoot使用IDEA-Docker遠(yuǎn)程部署過程,已在虛擬機(jī)上安裝好了Docker,此篇文章從配置docker遠(yuǎn)程連接端口寫起。

一、配置docker遠(yuǎn)程連接端口

1苟翻、修改docker.service文件
  vi /usr/lib/systemd/system/docker.service

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

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
2崇猫、重新加載配置文件,重啟服務(wù)
#重新加載配置文件
systemctl daemon-reload
# 重啟服務(wù)
systemctl restart docker.service
# 查看端口是否開啟
netstat -nlpt

查看端口是否開啟需忿,如下圖所示:

[root@localhost ~]# vi /usr/lib/systemd/system/docker.service
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker.service
[root@localhost ~]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1016/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      993/sshd     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1087/master  
tcp6       0      0 :::2375                 :::*                    LISTEN      1487/dockerd 
tcp6       0      0 :::22                   :::*                    LISTEN      993/sshd     
tcp6       0      0 ::1:25                  :::*                    LISTEN      1087/master  

3诅炉、開放端口
#檢查端口是否打開
firewall-cmd --query-port=2375/tcp
#臨時(shí)打開端口
firewall-cmd --add-port=2375/tcp
#永久打開端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent  

二蜡歹、IDEA配置

1、安裝插件Docker integration涕烧,重啟
2月而、連接遠(yuǎn)程Docker
圖片.png

配置好后頁面下方會(huì)出現(xiàn)Docker工具欄(如IDEA沒有點(diǎn)擊view-Tool Windows可調(diào)出來)

圖片.png
3、新建Springboot項(xiàng)目(步驟不贅述)
4议纯、配置pom文件
<build>
        <finalName>${project.parent.artifactId}-${project.parent.version}</finalName>
        <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>
5父款、在src/main目錄下創(chuàng)建docker目錄,并創(chuàng)建Dockerfile文件
FROM openjdk:8-jdk-alpine
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
6瞻凤、增加配置
圖片.png
圖片.png

命令解釋:

  • Image tag : 指定鏡像名稱和tag憨攒,鏡像名稱為 docker-workapi,tag為1.1
  • Bind ports : 綁定宿主機(jī)端口到容器內(nèi)部端口阀参。格式為[宿主機(jī)端口]:[容器內(nèi)部端口]
  • Bind mounts : 將宿主機(jī)目錄掛到到容器內(nèi)部目錄中肝集。格式為[宿主機(jī)目錄]:[容器內(nèi)部目錄]。這個(gè)springboot項(xiàng)目會(huì)將日志打印在容器 /home/developer/app/logs/ 目錄下结笨,將宿主機(jī)目錄掛載到容器內(nèi)部目錄后,那么日志就會(huì)持久化容器外部的宿主機(jī)目錄中湿镀。
7炕吸、使用Maven打包
圖片.png
8、運(yùn)行Docker
圖片.png

過程:先pull基礎(chǔ)鏡像勉痴,然后再打包鏡像赫模,并將鏡像部署到遠(yuǎn)程docker運(yùn)行

8、啟動(dòng)成功
圖片.png

可以訪問到接口

圖片.png
9蒸矛、日志查看
圖片.png

三瀑罗、使用Nginx反向代理請求Docker容器里運(yùn)行的jar

1、nginx添加配置后reload
server {
        listen       80;
        server_name  192.168.197.90;
        charset utf-8;
       
        location /yimall {
            alias /www/web/www.yimall.pro/dist;
            try_files $uri $uri/ /index.html last;
            index index.html;
        }

        location /api {
            proxy_pass http://127.0.0.1:8081;
        }

        access_log  /www/logs/www.yimall.log;
        error_log  /www/logs/www.yimall.error.log;
    }
2雏掠、docker配置宿主機(jī)端口到容器內(nèi)部端口
情況一:沒用到nginx反向代理斩祭,直接請求宿主機(jī)8081端口

如果是下圖,HoastIP不填乡话,其映射結(jié)果為 0.0.0.0:8081->8081/tcp摧玫,此時(shí)宿主機(jī)的8081端口開啟,需要這樣訪問 http://192.168.197.90:8081/api/member/get/113

圖片.png
圖片.png
情況二:用nginx反向代理绑青,請求宿主機(jī)80端口诬像,代理到8081端口

如果是下圖,HoastIP填127.0.0.1闸婴,其映射結(jié)果為 127.0.0.1:8081->8081/tcp坏挠,此時(shí)宿主機(jī)的8081端口未對外開放,訪問 http://192.168.197.90/api/member/get/113邪乍,會(huì)被nginx反向代理到 http://127.0.0.1:8081/api/member/get/113降狠,即可訪問接口API

圖片.png
圖片.png

四对竣、遇到的問題

啟動(dòng)容器時(shí),控制臺報(bào)錯(cuò)如下:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Caused by: java.net.NoRouteToHostException: Host is unreachable (Host unreachable)

解決:打開服務(wù)器3306端口

#臨時(shí)打開端口
firewall-cmd --add-port=3306/tcp
#永久打開端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喊熟,一起剝皮案震驚了整個(gè)濱河市柏肪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芥牌,老刑警劉巖烦味,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異壁拉,居然都是意外死亡谬俄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門弃理,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溃论,“玉大人,你說我怎么就攤上這事痘昌≡垦” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵辆苔,是天一觀的道長算灸。 經(jīng)常有香客問我,道長驻啤,這世上最難降的妖魔是什么菲驴? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮骑冗,結(jié)果婚禮上赊瞬,老公的妹妹穿的比我還像新娘。我一直安慰自己贼涩,他們只是感情好巧涧,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著遥倦,像睡著了一般褒侧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谊迄,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天闷供,我揣著相機(jī)與錄音,去河邊找鬼统诺。 笑死歪脏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粮呢。 我是一名探鬼主播婿失,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼钞艇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了豪硅?” 一聲冷哼從身側(cè)響起哩照,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懒浮,沒想到半個(gè)月后飘弧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砚著,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年次伶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稽穆。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冠王,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舌镶,到底是詐尸還是另有隱情柱彻,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布餐胀,位于F島的核電站哟楷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏骂澄。R本人自食惡果不足惜吓蘑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一惕虑、第九天 我趴在偏房一處隱蔽的房頂上張望坟冲。 院中可真熱鬧,春花似錦溃蔫、人聲如沸健提。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽私痹。三九已至,卻和暖如春统刮,著一層夾襖步出監(jiān)牢的瞬間紊遵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工侥蒙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暗膜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓鞭衩,卻偏偏與公主長得像学搜,于是被迫代替她去往敵國和親娃善。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容