跳到主要內容

docker (2)---存儲、網絡(利用docker容器上線靜態網站)

一、docker底層依賴的核心技術


1、命名空間 (Namespaces)


2、控制組 (Control Groups)


3、聯合文件系統 (Union File System)


4Linux 虛擬網絡支持:本地和容器內創建虛擬接口


(1) 命名空間(Namespaces):


實現了容器間資源的隔離,每個容器擁有自己獨立的命名空間 , 運行其中的應用就像是運行在獨立的操作系統中一樣 , 我們都可以看到文件系統,網卡等資源保證了容器之間互不影響,namesaces管理進程號 , 每個進程命名空間有一套自己的進程號管理方法 ,


程命名空間是一個父子關係的結構 , 子空間中的進程對於父空間是可見的。


(2) 控制組 (Control Groups) :


  控制組 (Control groups)--CGroups Linux 內核的一個特性 ,主要用來對共享資源進行隔離、限制、審計等 。cgroups 允許對於進程或進程組公平( 不公平 ) 的分配 CPU 時間、內存分配和 I/O 帶寬。


容器通過 cgroups 來得到所能夠管理資源的分配和使用。因此容器所獲得資源僅為所有系統資源的一個部分


1、資源限制 : 內存子系統為進程組設置內存使用上限,內存達到上限后再申請內存,就會發出 Out of Memory


2、 優先級 : 通過優先級讓一些組得到更多 CPU 等資源


3、 資源審計 : 用來統計系統上實際把多少資源用到適合的目的上 , 可以使用 cpuacct 子系統記錄某個進程組使用的 CPU 時間


4、 隔離 : 為組隔離名字空間 , 這樣一個組不會看到其他組的進程 .網絡連接和文件系統


5、 控制 : 掛起 . 恢復和啟動等操作


(3)聯合文件系統 (Union File System) :


  docker 中使用AUFS(another Union File System v2 版本以後的Advanced multi-layered Unification File System) 控製為每一個成員目錄設定只讀 / 讀寫 / 寫出權限 , 同時 AUFS 有一個類似分層的概念 , 對只讀權限的分支可以邏輯上進行增量的修改.


二、docker的存儲


docker兩種存儲資源類型:


1Data Volume (數據卷)


2Data Volume Dontainers --- 數據卷容器


(1) Data Volume (數據卷):


Data Volume 本質上是 Docker Host 文件系統中的目錄或文件,使用類似與 Linux 下對目錄或者文件進行 mount 操作。數據卷可以在容器之間共享和重用,對數據卷的更改會立馬生效,對數據卷的更新不會影響鏡像,卷會一直存在,直到沒有容器使用。


Data Volume(數據卷)的特點:


1Data Volume 是目錄或文件,而非沒有格式化的磁盤(塊設備)。


2、容器可以讀寫 volume 中的數據。


3volume 數據可以被永久的保存,即使使用它的容器已經銷毀。


 Data Volume 的使用:


1、在宿主機根目錄下創建一個目錄(數據卷)


 


2、啟動一個容器並將數據卷掛載到容器的目錄下


 


3、驗證  ( 持久化的需要映射目錄)


 


#


 


(2)Data Volume Dontainers --- 數據卷容器


數據卷容器就是一個普通的容器,只不過是專門用它提供數據卷供其他容器掛載使用


Data Volume Dontainers使用:


1、創建一個名為 dbdata 的數據卷,並在其中創建一個數據卷掛載到 /dbdata


docker run -dti -v /dbdata --name dbser centos:latest


2、再啟動兩個容器,並使用數據卷容器


docker run -dti --volumes-from dbser --name db1 centos:latest


#



3、驗證


 


#



容器 db1 db2 同時掛載了同一個數據卷到本地相同 /dbdata目錄。三個容器任何一個目錄下的寫入,都可以時時同步到另外兩個


三、docker 三種網絡


  docker 網絡從覆蓋範圍可分為單個 host 上的容器網絡和跨多個 host 的網絡,docker 目前提供了映射容器端口到宿主主機和容器互聯機制來為容器提供網絡服務,在啟動容器的時候,如果不指定參數,在容器外部是沒有辦法通過網絡來訪問容器內部的網絡應用和服務的


docker 安裝時會自動在host上創建三個網絡


docker   network  ls   (查看docker  網絡)


(1) docker--none網絡


none 網絡就是什麼都沒有的網絡。掛在這個網絡下的容器除了 lo,沒有其他 任何網卡。容器創建時,可以通過 --network=none 指定使用 none 網絡


 


none網絡的應用


封閉的網絡意味着隔離,一些對安全性要求高並且不需要聯網的應用可以使用 none 網絡。


(2)docker--host網絡


連接到 host 網絡的容器,共享 docker host 的網絡棧,容器的網絡配置與host 完全一樣。可以通過 --network=host 指定使用 host 網絡


 


host 網絡的應用


  直接使用 Docker host 的網絡最大的好處就是性能,如果容器對網絡傳輸效率有較高要求,就可以選擇 host 網絡。當然不便之處就是犧牲一些靈活性,比如要考慮端口衝突問題,Docker host上已經使用的端口就不能再用了。


Docker host 的另一個用途是讓容器可以直接配置 host 網路。比如某些跨host 的網絡解決方案,其本身也是以容器方式運行的,這些方案需要對網絡進行配置,比如管理 iptables


(3) docker--bridge 網絡


docker 安裝時會創建一個 命名為 docker0 linux bridge。如果不指定--network,創建的容器默認都會掛到 docker0


 


#


 


eth0@if29      veth04c5851 是一對 veth pair


#



  veth pair 是一種成對出現的特殊網絡設備,可以把它們想象成由一根虛擬網線連接起來的一對網卡,網卡的一頭(eth0@if29)在容器中,另一頭( veth04c5851)掛在網橋 docker0 上,其效果就是將 eth0@if29也掛在了docker0 上。


# 查看網絡配置信息 ( 設置容器ip 網段、網關)


docker network inspect bridge

 


#



注:容器創建時,docker 會自動從 172.17.0.0/16 中分配一個 IP,這裏 16 位的掩碼保證有足夠多的 IP 可以供容器。


四、創建 user-defined網絡 (自定義網絡)


通過 bridge 驅動創建類似前面默認的 bridge 網絡


1、利用bridge驅動創建名為my-net2網橋(docker會自動分配網段)


docker network create --driver bridge my-net2


# 查看網絡配置信息


 


# 查看網橋


 


2、利用bridge驅動創建名為my-net3網橋(user-defined (自定義)網段及網關)


docker network create --driver bridge --subnet 172.33.1.0/24 --gateway 172.33.1.1 my-net3


# 查看網絡配置信息


 


# 查看網橋


 


3、啟動容器使用新建的my-net3網絡


docker run -it  --network=my-net3  busybox:latest


4、啟動容器使用my-net3網絡並指定ip(只有使用 --subnet 創建的網絡才能指定靜態 IP,如果是docker自動分配的網段不可以指定ip


docker run -it --network=my-net3  --ip 172.33.1.100  busybox:latest

 


5、讓已啟動不同vlanbusybox容器,可以連接到my-net2(其實在busybox中新建了my-net2的網卡)(添加網卡。訪問不同的網段)


 


# #docker network connect my-net3  08493ae30117   ( 連接)


6、使用--name指定啟動容器名字,可以使用docker自帶DNS通信,但只能工作在user-defined 網絡,默認的 bridge 網絡是無法使用 DNS 的。


#docker run -it --network=my-net3 --name=bbox1 busybox:latest 

#docker run
-it --network=my-net3 --name=bbox2 busybox:latest


7、容器之間的網絡互聯


&1、創建一個 db 容器


docker run -dti --name db centos:latest


&2、創建一個 web 容器,並使其連接到 容器db


docker run -dti --name web --link db:dblink centos:latest /bin/bash

--link db:dblink 實際是連接對端的名字和這個鏈接的名字,也就是和 db 容器建立一個叫做 dblink 的鏈接


 


# 測試  


 


注:此鏈接通信是單向的


8、容器端口映射


在啟動容器的時候,如果不指定參數,在容器外部是沒有辦法通過網絡來訪問容器內部的網絡應用和服務的,當容器需要通信時,我們可以使用 -P (大) &&-p (小)來指定端口映射


(1)   -P Docker 會隨機映射一個 49000 49900 的端口到容器內部開放的網絡端口


(2)   -p :則可以指定要映射的端口,並且在一個指定的端口上只可以綁定一個容器。


支持的格式


 IP HostPort ContainerPort


 IP : : ContainerPort


 IP HostPort


&1、 查看映射


docker port   CONTAINER ID/NAMES


&2、映射所有接口地址,此時綁定本地所有接口上的 5200 到容器的 5200 接口,訪問任何一個本地接口的 5000 ,都會直接訪問到容器內部


docker run -dti -p 5200:5200 centos:latest  /bin/bash


&3、多次使用可以實現多個接口的映射


docker run -dti -p 5400:5400  -p 5300:5300 centos:latest  /bin/bash


&4、映射到指定地址的指定接口


此時會綁定本地 192.168.226.147 接口上的 5100 到容器的 5100 接口


docker run -dti -p 192.168.226.147:5100:5100 centos:latest /bin/bash

 


&5、映射到指定地址的任意接口


此時會綁定本地 192.168.226.147 接口上的任意一個接口到容器的 5500 接口


docker run -dti -p 192.168.226.147::5500 centos:latest /bin/bash


實驗、通過端口映射實現訪問本地的 IP:PORT 可以訪問到容器內的 web


1、將容器80端口映射到主機8090端口


docker run -itd -p 192.168.226.147:8090:80 --name http-test httpd:latest


2、查看剛運行docker容器


docker  ps

 


3、進入 容器


 


4、容器內部編輯網頁文件 index.html


 


5、到宿主機上打開瀏覽器輸入 IP:PORT 訪問驗證


http://192.168.226.147:8090/


 


6、宿主機上傳靜態網站測試文件


 


7、解壓


 


8、把解壓的目錄上傳至容器下的網站根目錄


docker cp jd 67b3daf15a40:/usr/local/apache2/htdocs


9、進入容器,刪除原來的index.html 文件


 


10、展開目錄


 


11web 訪問


http://192.168.226.147:8090/


 


 

【精選推薦文章】



如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!



想要讓你的商品在網路上成為最夯、最多人討論的話題?



網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線



不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務



想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師"嚨底家"!!



Orignal From: docker (2)---存儲、網絡(利用docker容器上線靜態網站)

留言

這個網誌中的熱門文章

強強聯手!攜手打造雲林縣Web3.0 領地方品牌進軍元宇宙

中華電信攜手國內最大Potato Media Web3.0社群共享平台,及品牌醫生果俐文創三方結合,透過經濟部「CBMP智慧雲遊跨域串連計畫」,協助品牌數位轉型,帶動品牌體驗情境、新商業模組升級與行動支付應用,第一站選在雲林縣當地原生消費品牌,打造社群消費循環,探索近期最夯的元宇宙新玩法。 Potato Media執行長顏宏霖表示,在CBMP計畫協助下,加上站內Web3.0資源,將快速協助雲林縣當地品牌升級轉型,幫助店家創造品牌價值,包含黑矸仔醬油、四代目麥芽酥、玉津烘焙坊、禪屋米胖工坊、YuDS沐耳飲、莫蒂精品巧克力、維野納複合式餐飲、頂雲咖啡、媽祖埔豆腐張、玉山碾米廠等,另外嘉義市麥麵、名香茗茶也等不及跨縣市加入,結合Potato Media站內活動,打造雲林專屬限定NFT道具與頭框,發行雲林扭蛋,體驗全新元宇宙新世界。 左起雲林縣計畫處處長李明岳、果俐文創執行長-陳郁涵、雲林縣議員周秀月、中華電信雲林營運處總經理張肇家、Potato Media執行長顏宏霖、LINE禮物代表睿鼎數位、12CMTaiwan行銷總監楊涵柔。(圖/由Potato Media提供) 此次Potato Media平台合作內容是店家會員註冊活動:首次註冊可得100積分 + 一顆扭蛋,店家推薦文章介紹,可領取店家消費優惠券,站內扭蛋禮物抽獎活動,獎項豐富:雲林限定禮品、雲林意象限定NFT道具與頭框,雲林幣扭一下APP政令大聲公獎勵活動,另外各種雲林美食伴手禮、住宿旅遊的店家,都可以使用行動支付或上LINE禮物平台實際體驗消費。 推薦評價好的 iphone維修 中心 擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢 產品缺大量曝光嗎?你需要的是一流 包裝設計 窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。 雲林縣副縣長謝淑亞強調,此次計畫和Potato Media 合作,Potato Media 是一個在 2021 年 4 月正式發布的「區塊鏈 Web3.0 共享社群平台」,創作者和使用者都可以透過互動的機制,例如對文章點讚、留言與轉發分享,來獲取相對應比例的加密貨幣CFO(Potato Media 平台上的原生加密貨幣),跟Facebook、Instagram、YouTu...

要上網站行銷農產品,得經過市政府抽驗農藥殘留,檢驗合格才能上網行銷

台北網站設計      網頁設計公司     網站設計公司 食安五環為「源頭控管」、「重建生產管理履歷」、「提高查驗能力」、「加重生產者、廠商的責任」及「鼓勵、創造監督平臺」五大要環,除推動政府與市民消費者共同監督食品安全,更要從農場到餐桌,鏈結農村產業線,以網路社群為媒介,建立嘉義市農村網頁平台。活動現場介紹「農抵嘉」產銷網頁平台的內容,包含在地人文地產景,將景觀、產業、生態及文化等資訊整合、展現,更推廣在地農村農友優質、安全的農產品。要上「農抵嘉」網站行銷農產品,得經過市政府抽驗農藥殘留,檢驗合格才能上網行銷自己的農產品,嘉義市農友可以多利用,也提供店家採購管道。 「尚安心,農抵嘉」,透過「農抵嘉」產銷網頁平台,鏈結農村產業線並促進地產地消,從源頭管理食安,讓政府管理、民間參與,透過食安小教育,讓小朋友接觸農作物,與生產者互動,產生共鳴,一同攜手維護嘉義市的食安。記者會中也展示紅瓦厝社區所做的紅瓦窯烤,並有其他下埤花生等農產品,透過農場職人使「農特產品不只是農產品」,民眾可登入「農抵嘉」網頁http://chiayirural.com/index.asp瞭解更進一步的訊息。 網動廣告 參考資料:蕃新聞https://n.yam.com/Article/20171226529712 Orignal From: 要上網站行銷農產品,得經過市政府抽驗農藥殘留,檢驗合格才能上網行銷

IEA:疫情衝擊能源需求 但再生能源呈創紀錄成長_台中搬家公司

※ 台中搬家公司 教你幾個打包小技巧,輕鬆整理裝箱! 還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」 摘錄自2020年11月10日中央社報導 國際能源總署(IEA)報告今天(10日)指出,武漢肺炎(COVID-19)疫情可能衝擊能源需求,但電力部門再生能源繼續以創紀錄速度成長。 IEA執行董事比羅爾(Fatih Birol)表示:「在2025年,再生能源將成為全球最大發電來源,預計將提供1/3的全球電力,終結煤炭50年來作為最大電力供應來源的地位。」 ※推薦 台中搬家公司 優質服務,可到府估價 台中搬鋼琴,台中金庫搬運,中部廢棄物處理,南投縣搬家公司,好幫手搬家,西屯區搬家 IEA關於再生能源的年度報告估計,儘管受到疫情干擾,今年的再生能源新發電容量可望創紀錄,達將近200GW(GW為十億瓦)。 能源轉型 國際新聞 再生能源 疫情看氣候與能源 本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理 ※ 台中搬家公司 教你幾個打包小技巧,輕鬆整理裝箱! 還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」 Orignal From: IEA:疫情衝擊能源需求 但再生能源呈創紀錄成長_台中搬家公司