国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

如何自己用wordpress建網站黑龍seo網站優(yōu)化

如何自己用wordpress建網站,黑龍seo網站優(yōu)化,進入微信官方網站注冊,成都專業(yè)建設網站docker分層結構 如圖所示,容器是由最上面可讀可寫的容器層,以及若干個只讀鏡像層組成,創(chuàng)建容器時,容器中的 數據都來自鏡像層。這樣的分層機構最大的特點是寫時復制: 1、容器中新生成的數據會直接存放在容器層&#xf…

docker分層結構

如圖所示,容器是由最上面可讀可寫的容器層,以及若干個只讀鏡像層組成,創(chuàng)建容器時,容器中的 數據都來自鏡像層。這樣的分層機構最大的特點是寫時復制:

1、容器中新生成的數據會直接存放在容器層,也可以稱之為可寫層。

2、修改容器中現有的數據會先從鏡像層將數據復制到容器層,修改后的數據就會直接保存在容器層,而鏡像層數據不會有任何變化。

3、如果多個鏡像層中有相同的命名文件,在容器層只會看到最上面鏡像層的內容。

聯(lián)合掛載技術?

Docke鏡像采用這種分層構建設計,能使鏡像結構和容器的創(chuàng)建,共享和分發(fā)變得非常高效,每個鏡 像層可以稱之為layer,這些layer被存放在了/var/lib/docker/volume//目錄下,這里 的storage-driver可以有很多種,比如AUFS、OverlayFS、VFS、Brtfs等。可以通過docker info命令查 看存儲驅動,通常Ubuntu類的系統(tǒng)默認采用的是AUFS,Centos7.1+系列采用的是OverlayFS。

OverlayFS是一種堆疊文件系統(tǒng),它依賴并建立在其它的文件系統(tǒng)之上(例如ext4fs和xfs等等),并 不直接參與磁盤空間結構的劃分,僅僅將原來底層文件系統(tǒng)中不同的目錄進行合并,然后向用戶呈現,這 也就是聯(lián)合掛載技術,如圖所示。 而Linux內核為Docker提供的OverlayFS驅動有兩種:overlay和 overlay2。而overlay2是相對于overlay的一種改進,在inode利用率方面比overlay更有效。但是overlay 有環(huán)境需求:Docker版本17.06.02+,宿主機文件系統(tǒng)需要是ext4或xfs格式。

data volume?

默認情況下,在容器內創(chuàng)建的所有文件都存儲在可寫容器層上。這意味著,當該容器不再存在時,數 據將不會持久保存,并且如果另一個進程需要它,則可能很難從容器中取出數據。為了能夠保存持久化數 據,Docker提出了volume的概念。

為了能夠保存持久化數據,Docker提出了volume的概念。簡單來說,volume就是目錄或者文件, 它可以繞過默認的聯(lián)合文件系統(tǒng),而以正常的文件或者目錄的形式存在于Docker Host文件系統(tǒng)上。 Docker為容器提供了兩個選項來將文件存儲在主機中,以便即使容器停止后文件也可以持久存儲。


Volume類型: – Bind mounts 宿主機——》

容器 – Docker managed volume 容器——》宿主機

?bind mounts

Bind mounts只需要在創(chuàng)建容器時,使用-v參數指明Docker host目錄或文件和容器目錄或文件映射的對應關系, 將本地的數據映射到容器內,可以使用多個-v映射多個目錄或文件,還需要注意的是目錄只能映射目錄,文件只能映射 文件,不然會報錯。實例如下:
?

1、在Docker host中創(chuàng)建目錄,與容器的/usr/share/nginx/html目錄做映射,在容器中/usr/share/nginx/html 目錄已經存在,如果不存在,會自動創(chuàng)建路徑,映射時會隱藏容器中原本的數據,取而代之的是Docker host上的 /html目錄中的數據。

[root@docker ~]# mkdir /html
[root@docker ~]# vim /html/index.html
welcome to huayuedu!!!
[root@docker ~]# docker run --name cynginx -itd -p 80:80 -v /html:/usr/share/nginx/html nginx:latest
cc0c8d7ac53af8b29f32aae76b767e51e6c3358ed2b491bd1ef4e0b96e77f3e5
[root@docker ~]# curl http://127.0.0.1
welcome to huayuedu!!

bind mount?

2、當Docker host上的數據發(fā)生了變化,容器中的數據也會隨著發(fā)生變化,示例如下

[root@docker ~]# echo hello huayu > /html/index.html
[root@docker ~]# curl http://127.0.0.1
hello huay

3、就算是把容器刪除,也不會影響到Docker host上的數據,示例如下。

[root@docker ~]# docker stop cynginx
cynginx
[root@docker ~]# docker rm cynginx
cynginx
[root@docker ~]# cat /html/index.html
hello huay

bind mount?

4、此外,Bind mounts還可以指定數據的讀寫權限,默認權限是可讀可寫,示例如下,在映射volume時,指定 容器中的文件權限只讀,那么在容器內該文件只能被讀取,無法修改,這樣也提高了容器的安全性

[root@docker ~]# docker run --name cynginx1 -itd -p 80:80 -v
/html/index.html:/usr/share/nginx/html/
index.html:ro nginx:latest
[root@docker ~]# curl http://127.0.0.1
hello huayu
[root@docker ~]# docker exec -it cynginx1 /bin/bash
root@0555f35f03e8:/# echo huayu123 > /usr/share/nginx/html/index.html
bash: /usr/share/nginx/html/index.html: Read-only file system

通過上面的示例,我們已經理解了Bind mounts的使用,但是它也有自身的不足之處,使用時需要指定Docker host上的文件或目錄為源數據,這樣就限制了容器的可移植性。例如,當需要把容器移動到其他的Docker host上的時 候,如果對方Docker host上沒有源數據庫,或者路徑不相同,操作會失敗

docker managed volum

?第二種volume類型是由Docker管理的volume,與Bind mounts相比,Docker管理的volume在使用時不需要指 定Docker host路徑,Docker管理的volume具有以下幾個優(yōu)點:

1、與Bind mounts相比,Docker管理的volume更易于備份或遷移。

2、用戶可以使用Docker CLI命令或Docker API管理volume。

3、volume在Linux和Windows容器上均可工作。

4、可以在多個容器之間更安全地共享volume,提供volume加密功能。

6、可以通過容器預先填充新volume的內容。

實例如下:
1、通過-v告訴Docker需要一個volume,并將其mount到/usr/share/nginx/html目錄,那么Docker會在 /var/lib/docker/volumes/目錄下創(chuàng)建volume。

[root@docker ~]# docker run --name cynginx2 -itd -p 80:80 -v /usr/share/nginx/html/ nginx
22c875d19f3f12c8528e8f5316395305c04b3f127cdb5d877e57c055d1933fa7

2、使用docker inspect查看容器的mounts部分,可以看到docker host上的 /var/lib/docker/volumes/6adbe6c8051f58c1d5cc2e8a12faaf1e6aa60b1075433b33a410a5d55cd8e69c/_data目錄已經掛在到容器中 /usr/share/nginx/html目錄下,但是查看Docker host的volume中內容,內容是容器中的數據。也就是說使用Docker管理的volume,在做映射時,會把容 器中的數據映射到Docker host

[root@docker ~]# docker inspect cynginx2
"Mounts": [
{ "Type": "volume", "Name": "6adbe6c8051f58c1d5cc2e8a12faaf1e6aa60b1075433b33a410a5d55cd8e69c", "Source": "/var/lib/docker/volumes/6adbe6c8051f58c1d5cc2e8a12faaf1e6aa60b1075433b33a410a5d55cd8e69c/_data", "Destination": "/usr/share/nginx/html",
...... [root@docker ~]#ls /var/lib/docker/volumes/6adbe6c8051f58c1d5cc2e8a12faaf1e6aa60b1075433b33a4
10a5d55cd8e69c/_data
50x.html index.html

3、我們修改volume中的數據,再訪問,發(fā)現volume中修改的數據會同步到容器中的。

[root@docker ~]# echo huayu1234 >
/var/lib/docker/volumes/6adbe6c8051f58c1d5cc2e8a12faaf1e6aa6
0b1075433b33a410a5d55cd8e69c/_data/index.html
[root@docker ~]# curl http://127.0.0.1
huayu1234

4、我們還可以是使用docker volume命令查看docker管理的有哪些volume,并且還可以創(chuàng)建volume,示例如 下,創(chuàng)建一個volume,名為cyhuayu。在創(chuàng)建新的容器時,可以直接指定使用該volume。

[root@docker ~]# docker volume ls
DRIVER VOLUME NAME
local 6adbe6c8051f58c1d5cc2e8a12faaf1e6aa60b1075433b33a410a5d55cd8e69c
[root@docker ~]# docker volume create cyhuayu
cyhuayu
[root@docker ~]# docker volume ls
DRIVER VOLUME NAME
local 6adbe6c8051f58c1d5cc2e8a12faaf1e6aa60b1075433b33a410a5d55cd8e69c
local cyhuayu
[root@docker ~]# docker run --name cynginx3 -itd -p 81:80 -v cyhuayu:/usr/share/nginx/html/
nginx:latest
072c6758e9a815f2421861a54bfc8168eaf286df66f1d3187bc3c4141880e52f

?兩種volume不同點

在使用docker volume命令創(chuàng)建volume時,volume默認都是存在在本地的,實際上本地的volume 就是一個目錄。除此之外Docker還支持在外部存儲系統(tǒng)上創(chuàng)建volume,比如:NFS、Ceph等。

目前我們已經學習了Docker的兩種volume的理論和基本操作,它們兩者之間的相同點都是使用 Docker host文件系統(tǒng)中的某個路徑。不同點如下表所示:

容器之間數據共享

?實現容器間數據共享的方法如下:

– 第一種方法是將共享數據放在volume中,然后將其mount到多個容器。

– 第二種方法是使用volume container,volume container是用來為其他容器提供volume的容器。 這樣可以提高容器的可移植性。

– 第三種方法是將數據打包到鏡像中,然后通過--volumes-from共享

第一種方法?

第一種方法是將共享數據放在volume中,然后將其mount到多個容器。示例如下,創(chuàng)建由三個nginx容器組成的 web集群,使用相同的html文件。在使用-v指定volume時,可以是Docker host的路徑或者是Docker創(chuàng)建的volume。

[root@docker ~]# docker run --name apache1 -itd -p 8081:80 -v /html:/usr/share/nginx/html/
nginx:latest
[root@docker ~]# docker run --name apache2 -itd -p 8082:80 -v /html:/usr/share/nginx/html/
nginx:latest
[root@docker ~]# docker run --name apache3 -itd -p 8083:80 -v /html:/usr/share/nginx/html/
nginx:latest
[root@docker ~]# curl http://127.0.0.1:8081
hello huayu
[root@docker ~]# curl http://127.0.0.1:8082
hello huayu
[root@docker ~]# curl http://127.0.0.1:8083
hello huay

第二種方法?

第二種方法是使用volume container,volume container是用來為其他容器提供volume的容器。這樣可以提高容 器的可移植性。

創(chuàng)建volume container,容器名為cy_data,使用-v指定了volume,提供html文件。需要注意的是,這里使用的 是docker create創(chuàng)建的容器,也就是說容器只是創(chuàng)建了,并未啟動,因為volume container只是提供數據,自身并不 需要運行

[root@docker ~]# docker create --name cy_data -v /html:/usr/share/nginx/html busybox
創(chuàng)建新的nginx容器,使用參數--volumes-from指定使用cy_data容器提供的volume。
[root@docker ~]# docker run --name cynginx1 -itd -p 8081:80 --volumes-from cy_data nginx
[root@docker ~]# docker run --name cynginx2 -itd -p 8082:80 --volumes-from cy_data nginx
[root@docker ~]# docker run --name cynginx3 -itd -p 8083:80 --volumes-from cy_data ngin

通過docker inspect查看容器信息中的Mounts部分,可以看到新創(chuàng)建的nginx容器已經使用了cy_data容器所提供 的volume。經過驗證三個nginx容器中的html文件一樣。

[root@docker ~]# docker inspect cynginx1
[root@docker ~]# echo welcome to huayuedu > /html/index.html
[root@docker ~]# curl http://127.0.0.1:8081
welcome to huayuedu
[root@docker ~]# curl http://127.0.0.1:8082
welcome to huayuedu
[root@docker ~]# curl http://127.0.0.1:8083
welcome to huayued

與第一種實現數據共享的方法相比,不必再為每個容器指定volemu,所有volume都在volume container 中定義 好了,容器只需與volume container關聯(lián),實現了容器與Docker host的解

第三種方法

volume container的數據歸根到底還是在Docker host里,對容器的可移植性有一定的限制。這里可以使用data- packed volume container。其原理是將數據打包到鏡像中,然后通過--volumes-from共享。

示例如下,使用Dockerfile構建鏡像,將Docker host中的數據進行打包。ADD指令是將html目錄中的數據添加到 容器目錄/usr/share/nginx/html中。VOLUME指令的作用與-v效果相同,用來創(chuàng)建volume,并且會把 /usr/share/nginx /html目錄中的數據復制到volume中。

[root@docker ~]# mkdir html/
[root@docker ~]# echo huayu > index.html
[root@docker ~]# vim Dockerfile
FROM busybox:latest
ADD html /usr/share/nginx/html
VOLUME /usr/share/nginx/html
CMD [“/bin/bash”]
[root@docker ~]# docker build -t cy_hy /roo

?使用新構建的鏡像創(chuàng)建data-packed volume container,創(chuàng)建新的nginx容器,使用參數--volumes-from 指定使用cy_data123容器提供的volume

[root@docker ~]# docker create --name cy_data123 cy_hy
[root@docker ~]# docker run --name cynginx7 -itd -p 8087:80 --volumes-from cy_data123 nginx
[root@docker ~]# docker inspect cynginx7
[root@docker ~]# curl http://127.0.0.1:8087
huayu

容器能夠正確讀取volume中的數據。data-packed volume container是自包含的,不依賴Docker host 提供數據,具有很強的移植性,非常適合只使用靜態(tài)數據的場景,比如應用的配置信息、web server的靜態(tài)文 件等

總結

1、實現數據共享的方法有:容器指定同一個volume、volume contauner和data-packed volume contauner。

2、volume分為兩類:Bind mounts和Docker managed volume。

3、創(chuàng)建容器時,使用-v參數可以實現容器數據持久化存儲,volume分為兩類:Bind mounts類型是 將volume中的數據復制到容器中,Docker managed volume是將容器中的數據復制到volume中?

http://m.aloenet.com.cn/news/44758.html

相關文章:

  • 寧波專業(yè)平臺網站建設網絡推廣公司專業(yè)網絡
  • 給個網站可以在線做企業(yè)推廣的公司
  • 好的設計師網站有哪些友情鏈接搜讀
  • 微信在線使用登錄進一步優(yōu)化落實
  • 有哪些好用的網站微信小程序開發(fā)費用一覽表
  • 中山做網站建設聯(lián)系電話中國公關公司前十名
  • 學校網站建設畢業(yè)論文企業(yè)網絡營銷案例
  • 萍鄉(xiāng)建站公司微信推廣
  • 合肥網站關鍵詞推廣業(yè)務推廣公司
  • 做商城網站要什么手續(xù)費百度關鍵詞搜索指數查詢
  • 軟件測試員是干什么的優(yōu)化
  • 廣州上宏網站建設汽車行業(yè)網站建設
  • 企業(yè)網站設計的深圳公司營銷策劃
  • 什么是企業(yè)網站策劃案網店推廣的作用是什么
  • 做網站服務怎么賺錢2022最近比較火的營銷事件
  • 做網站工作室找客戶難看seo
  • 甜品網站設計思想文章代寫
  • 上海網站建設的重慶seo優(yōu)化效果好
  • 哪些網站做裝修外鏈群發(fā)
  • 長春網站制作優(yōu)勢吉網傳媒寧德市
  • 做一公司網站上優(yōu)化seo
  • 自建站多少錢寧波免費建站seo排名
  • 北京常用網站seo點擊排名軟件哪里好
  • 如何利用國外網站做自媒體新聞 今天
  • 長沙專業(yè)做網站公司有哪些武漢服裝seo整站優(yōu)化方案
  • 最近日本mv字幕免費觀看視頻中國優(yōu)化網
  • 計算機辦公軟件培訓班seo工程師招聘
  • 邯鄲做wap網站的公司百度雙十一活動
  • 臨平網站建設互聯(lián)網營銷推廣怎么做
  • 列舉網站開發(fā)常用的工具電腦培訓班速成班