docker 容器之間互相訪問(互聯(lián))

在上一篇文章里面我們構(gòu)建了一個(gè)eureka服務(wù)注冊(cè)中心組件坚嗜,已經(jīng)放在Docker容器中運(yùn)行践宴。
但是我們?cè)谶@里在構(gòu)建一個(gè)config配置中心服務(wù)組件哨查!

在架構(gòu)中陨囊,所有的子服務(wù)都往注冊(cè)中心進(jìn)行服務(wù)注冊(cè)弦疮。以前直接在服務(wù)器部署的時(shí)候,通過服務(wù)器地址直接進(jìn)行注冊(cè)蜘醋,比較方便胁塞。
但是放到docker容器中后,每個(gè)子服務(wù)都是一個(gè)容器堂湖,那么就涉及到了容器與容器之間的互相訪問闲先!
有兩個(gè)方法:
1.每個(gè)容器都映射宿主機(jī)器的一個(gè)端口,在部署在容器中的子服務(wù)在通過這個(gè)映射的端口進(jìn)行訪問注冊(cè)无蜂!但是不友好,因?yàn)椴⒉皇敲總€(gè)服務(wù)都需要對(duì)外暴露端口蒙谓!
2.容器與容器之間進(jìn)行關(guān)聯(lián)斥季,關(guān)聯(lián)后就可以進(jìn)行互相訪問!

這里采用第二種方式累驮,構(gòu)建一個(gè)config配置中心容器酣倾,在往容器中的eureka上進(jìn)行注冊(cè)!

查看docker容器中正在運(yùn)行的eureka

// 查詢正在運(yùn)行的容器
docker ps

輸出

C:\Users\szc>docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                    NAMES
721961e5d932        eureka_image:0.0.1   "nohup java -jar /yu…"   3 days ago          Up 33 minutes       0.0.0.0:9000->8080/tcp   eureka

找打最后面的NAMES字樣谤专,值是 eureka

現(xiàn)在首先修改config配置中心項(xiàng)目中的application.ymleureka注冊(cè)地址:

...... 省略一段配置.........
eureka:
  client:
    service-url:
      defaultZone: http://eureka:8080/eureka/

重點(diǎn)在最后的 defaultZone: http://eureka:8080/eureka/ 中 eureka 字樣躁锡,代替了之前的服務(wù)器IP地址
然后打包config配置中心項(xiàng)目!打包成jar

構(gòu)建清單

構(gòu)建config配置中心清單.png

構(gòu)建config配置中心的Dockerfile文件:

# 基礎(chǔ)鏡像
FROM java
# 鏡像構(gòu)建作者
LABEL maintainer docker_user<907147608@qq.com>
# 設(shè)置環(huán)境變量
# ENV JAVA_HOME=/xxx/xxx/jdk8
# 復(fù)制文件到目錄 <本地目錄> <容器目錄>
COPY config-server-0.0.1.jar /yunpan/smart-community/
# RUN 運(yùn)行命令, 這個(gè)命令一般用戶鏡像安裝的初始化操作置侍,就是你這個(gè)進(jìn)行需要的依賴設(shè)置
# RUN wget=http://xxx/xxx/jdk8
# CMD 命令, 如果 docker run [image] 后面沒有追加命令映之,則執(zhí)行CMD命令
# CMD nohup java -jar config-server-0.0.1.jar > eureka-sever.log &
# ENTRYPOINT 命令拦焚,此命令無論 docker run [image] 后面是否追加命令都執(zhí)行,如果有追加的命令杠输,則拼接在 ENTRYPOINT 命令的后面
ENTRYPOINT ["nohup","java", "-jar","/yunpan/smart-community/config-server-0.0.1.jar",">","config-server.log","&"]

開始構(gòu)建(在windows上構(gòu)建)

docker build -t config:0.0.1 E:\docker_worker\config

啟動(dòng)構(gòu)建成功的config

docker run -d --name config --link eureka config:0.0.1

--link 參數(shù)就是指定需要關(guān)聯(lián)哪一個(gè)容器赎败,指定的就是容器的名稱(取的是容器中的NAMES字段的值)
參數(shù)的格式為--link name: alias, 其中name是要鏈接的容器的名稱 ,alias是別名蠢甲。別名可以省略!

然后訪問eureka
http://localhost:9000/

訪問docker中的eureka.png

發(fā)現(xiàn)已經(jīng)注冊(cè)成功僵刮!

探究docker可以容器之間互聯(lián)的原因:

進(jìn)入容器config配置中心容器

docker exec -it f8a1aa11f3fa bash
C:\Users\szc>docker exec -it f8a1aa11f3fa bash
root@f8a1aa11f3fa:~# tail /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2      eureka 721961e5d932
172.17.0.3      f8a1aa11f3fa
root@f8a1aa11f3fa:~#

發(fā)現(xiàn)在容器中 /etc/hosts 中最后兩行:

172.17.0.2      eureka 721961e5d932
172.17.0.3      f8a1aa11f3fa

看到這個(gè)發(fā)現(xiàn)只是在/etc/hosts中做個(gè)轉(zhuǎn)發(fā)操作!
也就是把上面在config配置中心項(xiàng)目中的application.yml文件的defaultZone: http://eureka:8080/eureka/ 中 eureka 字樣進(jìn)行了解析鹦牛!解析成defaultZone: http://172.17.0.2:8080/eureka/搞糕,這個(gè)地址也就是eureka的容器地址!

傳送門:

docker 通過Dockerfile構(gòu)建鏡像 Eureka服務(wù)中心

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末曼追,一起剝皮案震驚了整個(gè)濱河市寞宫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拉鹃,老刑警劉巖辈赋,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異膏燕,居然都是意外死亡钥屈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門坝辫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篷就,“玉大人,你說我怎么就攤上這事近忙〗咭担” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵及舍,是天一觀的道長(zhǎng)未辆。 經(jīng)常有香客問我,道長(zhǎng)锯玛,這世上最難降的妖魔是什么咐柜? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮攘残,結(jié)果婚禮上拙友,老公的妹妹穿的比我還像新娘。我一直安慰自己歼郭,他們只是感情好遗契,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著病曾,像睡著了一般牍蜂。 火紅的嫁衣襯著肌膚如雪漾根。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天捷兰,我揣著相機(jī)與錄音立叛,去河邊找鬼。 笑死贡茅,一個(gè)胖子當(dāng)著我的面吹牛秘蛇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播顶考,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼赁还,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了驹沿?” 一聲冷哼從身側(cè)響起艘策,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渊季,沒想到半個(gè)月后朋蔫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡却汉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年驯妄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片合砂。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡青扔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翩伪,到底是詐尸還是另有隱情微猖,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布缘屹,位于F島的核電站凛剥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏囊颅。R本人自食惡果不足惜当悔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望踢代。 院中可真熱鬧,春花似錦嗅骄、人聲如沸胳挎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慕爬。三九已至窑眯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間医窿,已是汗流浹背磅甩。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姥卢,地道東北人卷要。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像独榴,于是被迫代替她去往敵國(guó)和親僧叉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344