久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      docker中expose是啥意思

      在docker中,expose是標(biāo)記信息的意思,是一種文檔表述方式;expose能夠在dockerfile中讓開發(fā)者可以更快讀懂Image開放了哪些服務(wù),不能直接打開端口,方便運(yùn)維人員在使用容器時(shí),知道要打開哪些端口,如果沒有expose端口, Container之間服務(wù)也是可以互相訪問的。

      docker中expose是啥意思

      本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。

      docker中expose是啥意思

      Dockerfile 里面的 expose,是標(biāo)記信息,不能直接打開端口,方便運(yùn)維人員在使用容器時(shí),知道要打開哪些端口。使用時(shí) docker run -itd -P xxx:xxx ,大寫 -P,會(huì)映射在Dockerfile文件中使用EXPOSE定義的端口,不需要手動(dòng) -p : 這種形式。

      EXPOSE只是一種文檔表述方式,在dockerfile中讓開發(fā)者可以更快讀懂Image開放了哪些服務(wù),沒有實(shí)際作用意義。如果沒有EXPOSE端口, Container之間服務(wù)也是可以互相訪問的。

      Docker里面expose和publish(run -p)的區(qū)別

      這里主要記錄的是我最近使用docker發(fā)現(xiàn)的一個(gè)小小的疑惑。總結(jié)起來就是:

      docker里,命令行啟動(dòng)時(shí)候docker run -p暴露接口和dockerfile里expose一個(gè)接口之間有什么區(qū)別和聯(lián)系。

      具體的描述如下:

      比如我先在Dockerfile里Expose一個(gè)8080的端口

      EXPOSE 8080

      然后我build這個(gè)image以備后期使用

      docker build -t myimage - Dockerfile

      接下來就是使用docker run啟動(dòng)這個(gè)image的一個(gè)container實(shí)例,并且publish一個(gè)端口

      docker container run -d -p 8080 myimage

      這里就出現(xiàn)了一個(gè)我所說的一個(gè)疑問,既然我已經(jīng)在Dockerfile里聲明了Expose端口8080,為什么,我還需要publish這個(gè)端口(-p)呢。這兩者有什么區(qū)別和聯(lián)系,我是否能夠直接

      docker container run -d myimage

      呢,這種情況下,是否還有端口暴露出來呢?

      經(jīng)過測(cè)試,(測(cè)試過程被省略,感興趣的朋友可以自行去測(cè)試下,其實(shí)這兩者之間是有著本質(zhì)的區(qū)別的,同時(shí)也有著一定程度的關(guān)聯(lián)

      我這邊列出這這四種組合

      A, 既沒有在Dockerfile里Expose,也沒有run -p

      B, 只在Dockerfile里Expose了這個(gè)端口

      C,同時(shí)在Dockerfile里Expose,又run -p

      D, 只有run -p

      1——針對(duì)情況A,啟動(dòng)在這個(gè)container里的服務(wù)既不能被host主機(jī)和外網(wǎng)訪問,也不能被link的container訪問,只能在此容器內(nèi)部使用

      2——–針對(duì)情況B,啟動(dòng)在這個(gè)container里的服務(wù)不能被docker外部世界(host和其他主機(jī))訪問,但是可以通過container

      link,被其他link的container訪問到

      3——–針對(duì)情況C,啟動(dòng)的這個(gè)cotnainer既可以被docker外部世界訪問,也可以被link的container訪問

      4———針對(duì)情況D,其實(shí)docker做了特殊的隱式轉(zhuǎn)換,等價(jià)于情況C,既可以被外部世界訪問,也可以被link的container訪問到(真對(duì)這種情況,原因是docker認(rèn)為,既然你都要把port

      open到外部世界了,等價(jià)于其他的container肯定也能訪問,所以docker做了自動(dòng)的Expose

      推薦學(xué)習(xí):《docker視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)