<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          掃盲:小白眼中的docker究竟是個(gè)什么東西

          共 8917字,需瀏覽 18分鐘

           ·

          2020-08-18 21:16

          內(nèi)容來自博主AlbertS,點(diǎn)擊閱讀原文即可閱讀原文

          前言

          Docker,中文名:容器引擎,別名:小鯨魚,生于2013年3月20日,有一個(gè)法裔美籍的母親?Solumon Hykes,父親是誰,不得而知。雖然只有7歲,但是在?Hello World?平行宇宙中也算進(jìn)入了青壯年吧,正在飛速的發(fā)展著。

          Docker?這個(gè)動(dòng)物選的比較有意思,是一只藍(lán)色的鯨魚,作為地球上最大的動(dòng)物,用它來代表容器再合適不過了。不過有誰知道為什么編程技術(shù)總是和動(dòng)物掛鉤???比如?Linux?的企鵝,Python?的大蛇,Hadoop?的大象等等,有知道的小伙伴還請(qǐng)告知一下。

          俗話說的好,“程序不逛動(dòng)物園,肯定技術(shù)有點(diǎn)懸”,經(jīng)??吹骄W(wǎng)上有人推薦編程學(xué)習(xí)方法,先學(xué)學(xué)基礎(chǔ),然后再看幾本兒動(dòng)物書就可以了,看來這些封面上的動(dòng)物已經(jīng)深入人心了。

          先把這些動(dòng)物放到一邊,來看看這個(gè)?docker?究竟是什么,之前我也不知道它是什么,甚至到了現(xiàn)在我也不能準(zhǔn)確的說出它是什么,我只是以一個(gè)小白的身份來學(xué)習(xí)和使用,并且把一些弄懂的知識(shí)點(diǎn)總結(jié)起來,方便日后查找。

          關(guān)于docker的疑問

          如果你之前看到?docker?時(shí)會(huì)有下面這些疑問,可以跟著文章梳理了解一下,如果你對(duì)這些問題的答案早已爛熟于胸,那么可以簡單瀏覽下,幫我挑挑毛病,也是幫助想學(xué)習(xí)的同學(xué)們:

          1. docker?最近很火啊,它到底能用來做什么?

          2. docker?和虛擬機(jī)好像啊,難道就是輕量虛擬機(jī)嗎?它們兩者還有其他的區(qū)別嗎?

          3. docker?教程里有?ubuntu?上安裝?docker,還有?docker?上安裝?linux,什么鬼,到底誰裝誰???

          4. docker?真的這么牛嗎?那開發(fā)項(xiàng)目必須得用上它啊,顯得高端大氣上檔次!

          5. docker?宣稱構(gòu)建一次,處處運(yùn)行,那它應(yīng)該能跨平臺(tái)吧?

          作為小白我也是帶著這些疑問開始慢慢了解?docker?的,特別是那個(gè)?ubuntu?上裝?docker,docker?上還能裝?ubuntu,都給我整蒙圈了,通過不斷學(xué)習(xí)才漸漸弄清了其中的原因。

          疑問探索解答

          docker 是什么

          關(guān)于?docker?我們來看下常見的介紹:

          Docker?是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的?Linux?機(jī)器或?Windows?機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。

          從這一段話中我們可以得到以下幾個(gè)知識(shí)點(diǎn):

          1. 它是一個(gè)容器引擎

          2. 可以用來打包應(yīng)用

          3. 可以發(fā)布到?linux?或者?windows?上

          4. 可以實(shí)現(xiàn)虛擬化

          5. 采用沙箱機(jī)制,相互隔離

          結(jié)合查到的資料來了解一下?docker,首先它是一個(gè)容器引擎,引擎這個(gè)詞經(jīng)常出現(xiàn),什么游戲引擎,物理引擎,發(fā)動(dòng)機(jī)引擎等等,每種引擎其實(shí)就是負(fù)責(zé)一種核心工作的模塊或事物,通過封裝來簡化工作流程,降低工作難度,而?docker?作為容器引擎的作用當(dāng)然就是生產(chǎn)容器了。

          它的目的就是隔離應(yīng)用,在隔離空間內(nèi)部署自己獨(dú)特的環(huán)境,需要了解的是它并不是一項(xiàng)新的技術(shù),而是利用了?Linux?核心中的?cgroups?和?namespace?等資源分脫機(jī)制來進(jìn)行隔離,這種被稱為容器的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,是很早就存在的技術(shù),只不過經(jīng)過?docker?封裝之后使用起來更加方便了。

          再說打包應(yīng)用,這也是?docker?迅速火起來的一個(gè)原因,因?yàn)榄h(huán)境部署是在太費(fèi)時(shí)費(fèi)力了,之前在服務(wù)器配置一個(gè)應(yīng)用的運(yùn)行環(huán)境,要安裝各種軟件,Java/Tomcat/MySQL等等。安裝和配置這些東西非常麻煩,并且還存在各種版本,而當(dāng)我們換另一臺(tái)同樣操作系統(tǒng)的服務(wù)器還要再配置一遍,有沒有辦法這些配置直接拷貝過來呢?其實(shí)這就是?docker?要做的事情,將應(yīng)用與運(yùn)行環(huán)境打包到一起,直接在?docker?中運(yùn)行一個(gè)容器就好了,你所依賴的環(huán)境直接就裝好了。

          前面提到?docker?是利用了?linux?內(nèi)核的一些特性,那么?windows?可以運(yùn)行嗎?如果你查詢早期一點(diǎn)的資料會(huì)得到不可以的答案,或者說即使在?windows?上運(yùn)行?docker,也是在中間加了一層?linux?虛擬機(jī)。而如今已經(jīng) 2020 年了,windows?上可以直接安裝?docker for windows?來啟動(dòng)提供?docker?服務(wù),而?docker for mac?也使得?docker?運(yùn)行在?mac?上不再困難,windows?很早就和?docker?進(jìn)行了合作,最新的?win10?上啟動(dòng)?docker?甚至可以切換內(nèi)核為?linux?或者?windows,很神奇吧。

          說到這里你應(yīng)該對(duì)?docker?有了一個(gè)簡單的了解,其中有一點(diǎn)很重要,它和宿主機(jī)是共享內(nèi)核的,這是解答上面很多疑惑的鑰匙,至于虛擬化,隔離這些都很容易理解了,而這些概念在虛擬機(jī)上常常出現(xiàn),所以很容易把它倆弄混。

          容器與虛擬機(jī)

          自從?docker?出現(xiàn),容器和虛擬機(jī)的對(duì)比就沒有停過,這些對(duì)比常常從啟動(dòng)時(shí)間、資源占用、隔離性,操作便利性等方面來進(jìn)行比較,可以用搜索引擎搜一下,大概就是下面這個(gè)樣子:

          特性Docker容器VM虛擬機(jī)
          啟動(dòng)速速秒級(jí)分鐘級(jí)
          性能接近原生明顯弱于原生
          硬盤使用相對(duì)較小,可以自由分配創(chuàng)建時(shí)分配,易造成浪費(fèi)
          系統(tǒng)支持量支持上千個(gè)一般幾十個(gè)

          造成這種差異的原因是什么?還是前面說的?docker?和宿主機(jī)是共享內(nèi)核,而虛擬機(jī)是自己創(chuàng)建了一整套系統(tǒng),雖然隔離性更強(qiáng),但是也造成了資源的浪費(fèi)和效率的降低。

          一直想找一個(gè)例子來形象地對(duì)比一下虛擬機(jī)和容器,我強(qiáng)行編一個(gè)吧,比如你是一個(gè)財(cái)富自由的人,準(zhǔn)備回老家養(yǎng)養(yǎng)牛種種菜,包個(gè)魚塘釣釣魚,順便再養(yǎng)一窩小白兔,但是小白兔會(huì)吃你種的蔬菜,牛偶爾也會(huì)踩到小白兔,這時(shí)怎么辦,把它們隔開唄。

          作為一個(gè)錢花不完的人,你準(zhǔn)備造幾個(gè)“小地球”,然后把飼養(yǎng)的動(dòng)物和種植的植物都放到各自的“地球”中放養(yǎng),每個(gè)小地球都是一個(gè)密封的環(huán)境,里面有自己的太陽、月亮、空氣、河流、山川等等,這種方法當(dāng)然可以,只是成本有些高,一旦建立了這個(gè)小地球,它所占有的資源就定下來了,基本上與大地球隔離,但是它還要依賴大地球,還要建立在地球上,可以類比下虛擬機(jī)

          因?yàn)榻ㄔ煨〉厍蛱M(fèi)時(shí)費(fèi)力了,所以你改了策略,這次不創(chuàng)建完全密閉的環(huán)境了,我直接造個(gè)籬笆就可以了,陽光、空氣、河流我還是使用大地球的,只是在籬笆里我進(jìn)行定制,做一些魚塘、蔬菜大棚等等。由于建造籬笆非常省事,我可以批量生產(chǎn),有需要了我可以直接拿來幾個(gè),放在地上就可以使用了,并且不同動(dòng)物以及植物之間都有籬笆擋著,不會(huì)出現(xiàn)相互影響的問題了,這就有點(diǎn)像容器了。

          雖然有些牽強(qiáng),但是這個(gè)例子還是可以幫助我們了解容器和虛擬機(jī)的區(qū)別,實(shí)際上容器與虛擬機(jī)并不是對(duì)立的關(guān)系,有時(shí)為了防止容器無限制的占用物理機(jī)資源,還會(huì)現(xiàn)在物理機(jī)上運(yùn)行虛擬機(jī),然后在虛擬機(jī)里運(yùn)行?docker,他們兩者只是不同需求下的不同選擇而已。

          操作系統(tǒng)和容器到底誰安裝誰

          前面說過?ubuntu?上裝?dockerdocker?上還能裝?ubuntu?這個(gè)問題困擾了我好久,實(shí)際上?windows?可以裝虛擬機(jī),而虛擬機(jī)中有可以裝?windows?這沒什么好奇怪的,這里的?dokcker?指的就是?docker?引擎,或者認(rèn)為是?docker?服務(wù)器。

          它們確實(shí)可以相互安裝,但情況是不同的,首先說?ubuntu?上裝?dockerdocker?說白了還是一種軟件,本質(zhì)上和你在電腦上裝個(gè)QQ也沒有多大差別,只不過這個(gè)軟件有點(diǎn)特殊,通過它還能下載、安裝別的環(huán)境,這么說它看起來有點(diǎn)像應(yīng)用商店了,不過他雖然提供倉庫,但是不僅僅是倉庫,本質(zhì)上它就是一種幫助你搭建環(huán)境的軟件。

          再來看看?docker?上裝?ubuntu,還記得之前說過的一個(gè)重點(diǎn)嗎??docker?上安裝的環(huán)境與宿主機(jī)共享內(nèi)核,這就決定了他不能安裝完整的系統(tǒng),不管是?ubuntu、CentOS?還是?RedHat,它所安裝的系統(tǒng)僅僅包含運(yùn)行庫和工具鏈,內(nèi)核還是用宿主機(jī)的,相當(dāng)于在?docker?中給內(nèi)核套了一個(gè)新的殼子而已。

          這下應(yīng)該清楚了,ubuntu?上裝?docker?就是在?ubuntu?上裝了一個(gè)容器軟件,?docker?上裝?ubuntu?就是在?docker?容器中給宿主內(nèi)核套上了一個(gè)新系統(tǒng)的殼子,使其滿足應(yīng)用軟件的環(huán)境,配備應(yīng)用軟件可使用的工具鏈。

          這么厲害的容器項(xiàng)目中一定要用嗎

          相信這種問題就是不了解容器也可以回答,肯定不是都要用啊,沒有什么技術(shù)是只有優(yōu)點(diǎn)沒有缺點(diǎn)吧,凡是技術(shù)總有其適合的領(lǐng)域和場景,一味的追求最新的技術(shù)不一定符合所要開發(fā)的項(xiàng)目。

          docker?也沒有傳說的那么神,它也有著這樣那樣的問題,比如一直津津樂道的資源伸縮機(jī)制,不像虛擬機(jī)那樣創(chuàng)建時(shí)便規(guī)定了資源大小,即使不使用也占用著,而?docker?可以直接使用宿主資源,避免了很多浪費(fèi)。但是反過來想,虛擬機(jī)規(guī)定了資源的多少,如果不夠用了只影響它自己,而?docker?如果一個(gè)環(huán)境出了問題,它可以把整個(gè)物理機(jī)的資源耗完,影響機(jī)器上的所有服務(wù)。

          另外,docker?建議只部署無狀態(tài)的服務(wù),它們不應(yīng)該承載任何交易數(shù)據(jù),所有數(shù)據(jù)應(yīng)該保存在數(shù)據(jù)庫服務(wù)器中,器隨時(shí)可以停止、或者刪除。當(dāng)容器被刪除掉,容器里的數(shù)據(jù)將會(huì)丟失,即使你要把?docker?數(shù)據(jù)放在主機(jī)來存儲(chǔ),它依然不能保證不丟數(shù)據(jù),具體的細(xì)節(jié)我也在學(xué)習(xí),有這方面經(jīng)驗(yàn)的朋友可以發(fā)表一下見解。

          docker的跨平臺(tái)

          先來看看跨平臺(tái)的概念:

          跨平臺(tái)概念是軟件開發(fā)中一個(gè)重要的概念,即不依賴于操作系統(tǒng),也不依賴硬件環(huán)境。一個(gè)操作系統(tǒng)下開發(fā)的應(yīng)用,放到另一個(gè)操作系統(tǒng)下依然可以運(yùn)行。

          首先要弄明白你說的跨平臺(tái)指的是?docker?跨平臺(tái),還是它里邊的應(yīng)用使用?docker?就能跨平臺(tái)了,從定義來說?docker?這個(gè)容器軟件應(yīng)該算是跨平臺(tái)的,畢竟?Linux、?Windows、?Mac?都有了?docker?的安裝包,那么他里面的鏡像運(yùn)行之后的容器能跨平臺(tái)嗎?這還要看具體的應(yīng)用,docker?沒有讓一個(gè)非跨平臺(tái)軟件變成跨平臺(tái)軟件的能力。

          關(guān)于這一點(diǎn)你還要牢記前面說的,docker?中的環(huán)境與宿主機(jī)共享內(nèi)核,你創(chuàng)建了一個(gè)自己編寫的exe程序的鏡像,拿到安裝了?docker?的?ubuntu?機(jī)器上顯然是無法成功運(yùn)行的。

          基礎(chǔ)知識(shí)點(diǎn)

          docker的缺點(diǎn)

          docker?的賣點(diǎn)是讓你擺脫配置環(huán)境的困擾,但真實(shí)情況是你打包鏡像的機(jī)器和系統(tǒng)版本,最好和你要運(yùn)行的目標(biāo)機(jī)器和系統(tǒng)版本一致,另外?docker?環(huán)境最好也一樣,忽然感覺它沒有那么神奇了,這不還是要求版本嗎?

          試想一下,你用一個(gè)高版本的?docker?服務(wù)打包,其中使用了一些新特性,然后放到低版本的?docker?服務(wù)下怎么能保證成功運(yùn)行,機(jī)器配置也是一樣,之前看到過一個(gè)問題 “嘗試在具有?4.19?或更高內(nèi)核的?Linux?系統(tǒng)上運(yùn)行?docker official centos:6?或?centos:5?容器,當(dāng)嘗試啟動(dòng)它時(shí),你會(huì)發(fā)現(xiàn)內(nèi)核和程序不兼容”。

          這樣看來,docker?只適合在相同環(huán)境下批量復(fù)制,使得實(shí)現(xiàn)自動(dòng)化測試和持續(xù)的集成很方便,但還是有些問題需要注意的:

          1. docker?是基于64位系統(tǒng)環(huán)境的,32位環(huán)境下無法使用

          2. 隔離性相比?KVM?之類的虛擬化方案還是有些欠缺

          3. 容器隨著用戶進(jìn)程的停止而銷毀,其中的日志、打點(diǎn)等用戶數(shù)據(jù)不便收集

          4. 網(wǎng)絡(luò)管理相對(duì)簡單,主要是基于?namespace?隔離

          5. 容器的?root?和宿主機(jī)?root?等同,這使得容器容易受到攻擊

          docker 的組成

          前面一直在說初學(xué)?docker?時(shí)的疑問,接下來看看?docker?究竟都包括哪些內(nèi)容,docker?這個(gè)容器引擎實(shí)際上是一個(gè)客戶端/服務(wù)器應(yīng)用程序,客戶端負(fù)責(zé)與守護(hù)的服務(wù)進(jìn)程進(jìn)行對(duì)話,而服務(wù)進(jìn)程負(fù)責(zé)構(gòu)建、運(yùn)行和分發(fā)?docker?容器。
          docker?客戶端和服務(wù)進(jìn)程可以在同一系統(tǒng)上運(yùn)行,也可以進(jìn)行遠(yuǎn)程訪問,通過網(wǎng)絡(luò)接口使用?RESTful API?進(jìn)行通信。

          使用?docker?時(shí)常常要接觸三個(gè)概念:鏡像(Image)、容器(Container)和倉庫(Repository)。簡單來說鏡像就是我們的想要打包的程序機(jī)加上程序運(yùn)行環(huán)境,打包出來的一個(gè)文件,相當(dāng)于程序安裝包。當(dāng)鏡像運(yùn)行起來我們就得到了容器,鏡像與容器的關(guān)系就類似于類和對(duì)象的關(guān)系。倉庫就是存放鏡像的地方,與代碼的倉庫?Github?很像,docker?鏡像也有一個(gè)常用的倉庫叫?Docker Hub,方便人們直接下載鏡像來運(yùn)行。

          運(yùn)行一個(gè)鏡像

          Hello world?常常被拿來新知識(shí)的入門和開頭,今天我們用這個(gè)例子來做一下收尾吧,首先你得有?docker?環(huán)境,說人話就是你得裝了?docker?軟件,之前不是一直說?docker?就是一個(gè)軟件嗎,你想用它當(dāng)然得安裝了,這類教程很多,假設(shè)你已經(jīng)安裝完了,

          我們在一臺(tái)?CentOS?上操作使用一下?docker,查詢下系統(tǒng)版本和?docker?版本:

          [root@remote-os ~]# lsb_release -aLSB Version:    :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription:    CentOS Linux release 7.7.1908 (Core)Release:    7.7.1908Codename:   Core[root@remote-os ~]# docker --versionDocker version 19.03.7, build 7141c199a2[root@remote-os?~]#

          首先下載?hello world?鏡像,使用?docker image pull hello-world?命令

          [root@remote-os ~]# docker image pull hello-worldUsing default tag: latestlatest: Pulling from library/hello-worldDigest: sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202Status: Image is up to date for hello-world:latestdocker.io/library/hello-world:latest

          查看本地鏡,使用?docker image ls?命令,發(fā)現(xiàn)?hell-world?鏡像已經(jīng)在本地了

          [root@remote-os ~]# docker image lsREPOSITORY                  TAG                 IMAGE ID            CREATED             SIZEubuntu                      latest              adafef2e596e        3 weeks ago         73.9MBregistry                    latest              708bc6af7e5e        6 months ago        25.8MBhello-world                 latest              bf756fb1ae65        7 months ago        13.3kBwurstmeister/zookeeper      latest              3f43f72cb283        18 months ago       510MBhyper/docker-registry-web   latest              0db5683824d8        3 years ago         599MB[root@remote-os?~]#

          下載完成之后直接使用?docker container run hello-world?命令運(yùn)行就可以了,這個(gè)鏡像運(yùn)行打印完直接就退出了

          [root@remote-os ~]# docker container run hello-world
          Hello from Docker!This message shows that your installation appears to be working correctly.
          To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
          To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash
          Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/
          For more examples and ideas, visit:?https://docs.docker.com/get-started/

          如果不想退出,運(yùn)行的鏡像應(yīng)該是能提供某種服務(wù)的,比如前面一直說的?ubuntu,它可以在?docker?中運(yùn)行起來,直接使用?docker container run -it ubuntu bash?命令就行,這里為什么我們不先下載呢?實(shí)際上如果你指定的鏡像在本地沒有的話會(huì)自動(dòng)下載,不需要手動(dòng)下載完再運(yùn)行。

          [root@remote-os ~]# docker container run -it ubuntu bashroot@0577050677ac:/# cat /etc/issueUbuntu 20.04 LTS \n \l
          root@0ecfed0920aa:/# lsbin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr varroot@0ecfed0920aa:/# ll home/total 8drwxr-xr-x 2 root root 4096 Apr 15 11:09 ./drwxr-xr-x 1 root root 4096 Jul 31 16:23 ../root@0ecfed0920aa:/#

          可以看到上面的操作,我們又進(jìn)入了?ubuntu?系統(tǒng),成功運(yùn)行了鏡像,現(xiàn)在得到了一個(gè)容器,可以通過?docker container ls?命令查看,還可以通過?docker container rm [containerID]?命令來刪除容器。

          總結(jié)

          • docker?軟件可以運(yùn)行在windows、linux?和?mac?上

          • docker?容器與宿主機(jī)共享一個(gè)系統(tǒng)內(nèi)核,如果依賴內(nèi)核版本的應(yīng)用最好保證物理機(jī)系統(tǒng)版本一致

          • docker?容器與虛擬機(jī)并不是對(duì)立的,有時(shí)候會(huì)放在一起配合使用

          • docker?有自己的鏡像倉庫,可以直接下載安裝,使用起來相當(dāng)方便,因?yàn)榫W(wǎng)絡(luò)原因,如果想快速搭建最好提前準(zhǔn)備好鏡像文件

          內(nèi)容來自博主AlbertS,點(diǎn)擊閱讀原文即可閱讀原文

          文章合集

          Selenium | Appium? | Jenkins? |? Jmeter?

          軟件測試方法匯總?|?Postman接口參數(shù)化?| 測試用例設(shè)計(jì)

          視頻教程

          Selenium?| Appium |?Jenkins |?Jmeter

          往期性能推文:

          01|性能綜述: 性能測試的概念到底是什么?(深度好文)

          02|性能綜述: TPS和響應(yīng)時(shí)間之間是什么關(guān)系?

          03|性能綜述: 怎么理解TPS、QPS、RT、吞吐量這些性能指標(biāo)?

          04|JMeter和LoadRunner:要知道工具僅僅只是工具

          05|指標(biāo)關(guān)系:你知道并發(fā)用戶數(shù)應(yīng)該怎么算嗎?
          性能測試工具--Locust官方文檔(API)解讀(全)

          AWS與Docker

          如何使用AWS EC2+Docker+JMeter構(gòu)建分布式負(fù)載測試基礎(chǔ)架構(gòu)
          Docker容器數(shù)據(jù)持久化和容器網(wǎng)橋連接
          Docker刪除image和container
          Docker與VM虛擬機(jī)的區(qū)別以及Docker的特點(diǎn)



          END



          覺得不錯(cuò),可以點(diǎn)贊和?在看,或者轉(zhuǎn)發(fā)、留言


          精彩的內(nèi)容要和朋友分享

          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  俺来也俺去也www色 | 成人做爰黄 片视频免费看 | 97日韩| 久久最新网址 | 亚洲日韩欧美综合热 |