成人麻豆免费视频精品区,校园春色中文字幕人妻,69国产亚洲精品成人av久久,男女激情久久免费国产,欧美一区二区三区4区,欧美狠狠爱第三页视频,120日本少妇视频,79自拍视频在线观看,中文字幕丝袜美腿一二三区

Docker教程
Docker安裝
Docker使用
Docker實(shí)例

Docker鏡像

如果曾經(jīng)做過 VM 管理員,則可以把 Docker 鏡像理解為 VM 模板,VM 模板就像停止運(yùn)行的 VM,而 Docker 鏡像就像停止運(yùn)行的容器;而作為一名研發(fā)人員,則可以將鏡像理解為類(Class)。

首先需要先從鏡像倉庫服務(wù)中拉取鏡像。常見的鏡像倉庫服務(wù)是 Docker Hub,但是也存在其他鏡像倉庫服務(wù)。

拉取操作會(huì)將鏡像下載到本地 Docker 主機(jī),可以使用該鏡像啟動(dòng)一個(gè)或者多個(gè)容器。

鏡像由多個(gè)層組成,每層疊加之后,從外部看來就如一個(gè)獨(dú)立的對象。鏡像內(nèi)部是一個(gè)精簡的操作系統(tǒng)(OS),同時(shí)還包含應(yīng)用運(yùn)行所必須的文件和依賴包。

因?yàn)槿萜鞯脑O(shè)計(jì)初衷就是快速和小巧,所以鏡像通常都比較小。

前面多次提到鏡像就像停止運(yùn)行的容器(類)。實(shí)際上,可以停止某個(gè)容器的運(yùn)行,并從中創(chuàng)建新的鏡像。

在該前提下,鏡像可以理解為一種構(gòu)建時(shí)(build-time)結(jié)構(gòu),而容器可以理解為一種運(yùn)行時(shí)(run-time)結(jié)構(gòu),如下圖所示。

鏡像和容器

上圖從頂層設(shè)計(jì)層面展示了鏡像和容器間的關(guān)系。通常使用docker container run和docker service create命令從某個(gè)鏡像啟動(dòng)一個(gè)或多個(gè)容器。

一旦容器從鏡像啟動(dòng)后,二者之間就變成了互相依賴的關(guān)系,并且在鏡像上啟動(dòng)的容器全部停止之前,鏡像是無法被刪除的。嘗試刪除鏡像而不停止或銷毀使用它的容器,會(huì)導(dǎo)致出錯(cuò)。

鏡像通常比較小

容器目的就是運(yùn)行應(yīng)用或者服務(wù),這意味著容器的鏡像中必須包含應(yīng)用/服務(wù)運(yùn)行所必需的操作系統(tǒng)和應(yīng)用文件。

但是,容器又追求快速和小巧,這意味著構(gòu)建鏡像的時(shí)候通常需要裁剪掉不必要的部分,保持較小的體積。

例如,Docker 鏡像通常不會(huì)包含 6 個(gè)不同的 Shell 讓讀者選擇——通常 Docker 鏡像中只有一個(gè)精簡的Shell,甚至沒有 Shell。

鏡像中還不包含內(nèi)核——容器都是共享所在 Docker 主機(jī)的內(nèi)核。所以有時(shí)會(huì)說容器僅包含必要的操作系統(tǒng)(通常只有操作系統(tǒng)文件和文件系統(tǒng)對象)。

提示:Hyper-V 容器運(yùn)行在專用的輕量級(jí) VM 上,同時(shí)利用 VM 內(nèi)部的操作系統(tǒng)內(nèi)核。

Docker 官方鏡像 Alpine Linux 大約只有 4MB,可以說是 Docker 鏡像小巧這一特點(diǎn)的比較典型的例子。

但是,鏡像更常見的狀態(tài)是如 Ubuntu 官方的 Docker 鏡像一般,大約有 110MB。這些鏡像中都已裁剪掉大部分的無用內(nèi)容。

Windows 鏡像要比 Linux 鏡像大一些,這與 Windows OS 工作原理相關(guān)。比如,未壓縮的最新 Microsoft .NET 鏡像(microsoft/dotnet:latest)超過 1.7GB。Windows Server 2016 Nano Server 鏡像(microsoft/nanoserver:latest)在拉取并解壓后,其體積略大于 1GB。

鏡像倉庫服務(wù)

Docker 鏡像存儲(chǔ)在鏡像倉庫服務(wù)(Image Registry)當(dāng)中。

Docker 客戶端的鏡像倉庫服務(wù)是可配置的,默認(rèn)使用 Docker Hub。

鏡像倉庫服務(wù)包含多個(gè)鏡像倉庫(Image Repository)。同樣,一個(gè)鏡像倉庫中可以包含多個(gè)鏡像。

可能這聽起來讓人有些迷惑,所以下圖展示了包含 3 個(gè)鏡像倉庫的鏡像倉庫服務(wù),其中每個(gè)鏡像倉庫都包含一個(gè)或多個(gè)鏡像。

官方和非官方鏡像倉庫

Docker Hub 也分為官方倉庫(Official Repository)和非官方倉庫(Unofficial Repository)。

顧名思義,官方倉庫中的鏡像是由 Docker 公司審查的。這意味著其中的鏡像會(huì)及時(shí)更新,由高質(zhì)量的代碼構(gòu)成,這些代碼是安全的,有完善的文檔和最佳實(shí)踐。

非官方倉庫更像江湖俠客,其中的鏡像不一定具備官方倉庫的優(yōu)點(diǎn),但這并不意味著所有非官方倉庫都是不好的!非官方倉庫中也有一些很優(yōu)秀的鏡像。

在信任非官方倉庫鏡像代碼之前需要我們保持謹(jǐn)慎。說實(shí)話,讀者在使用任何從互聯(lián)網(wǎng)上下載的軟件之前,都要小心,甚至是使用那些來自官方倉庫的鏡像時(shí)也應(yīng)如此。

大部分流行的操作系統(tǒng)和應(yīng)用在 Docker Hub 的官方倉庫中都有其對應(yīng)鏡像。這些鏡像很容易找到,基本都在 Docker Hub 命名空間的頂層。

鏡像命名和標(biāo)簽

只需要給出鏡像的名字和標(biāo)簽,就能在官方倉庫中定位一個(gè)鏡像(采用“:”分隔)。從官方倉庫拉取鏡像時(shí),docker image pull 命令的格式如下。

docker image pull :

在之前的 Linux 示例中,通過下面的兩條命令完成 Alpine 和 Ubuntu 鏡像的拉取。

docker image pull alpine:latest
docker image pull ubuntu:latest

這兩條命令從 alpine 和 ubuntu 倉庫拉取了標(biāo)有“latest”標(biāo)簽的鏡像。

下面來介紹一下如何從官方倉庫拉取不同的鏡像。

$ docker image pull mongo:3.3.11
//該命令會(huì)從官方Mongo庫拉取標(biāo)簽為3.3.11的鏡像

$ docker image pull redis:latest
//該命令會(huì)從官方Redis庫拉取標(biāo)簽為latest的鏡像

$ docker image pull alpine
//該命令會(huì)從官方Alpine庫拉取標(biāo)簽為latest的鏡像

關(guān)于上述命令,需要注意以下幾點(diǎn)。

首先,如果沒有在倉庫名稱后指定具體的鏡像標(biāo)簽,則 Docker 會(huì)假設(shè)用戶希望拉取標(biāo)簽為 latest 的鏡像。

其次,標(biāo)簽為 latest 的鏡像沒有什么特殊魔力!標(biāo)有 latest 標(biāo)簽的鏡像不保證這是倉庫中最新的鏡像!例如,Alpine 倉庫中最新的鏡像通常標(biāo)簽是 edge。通常來講,使用 latest 標(biāo)簽時(shí)需要謹(jǐn)慎!

從非官方倉庫拉取鏡像也是類似的,讀者只需要在倉庫名稱面前加上 Docker Hub 的用戶名或者組織名稱。

下面通過示例來展示如何從 tu-demo 倉庫中拉取 v2 這個(gè)鏡像,其中鏡像的擁有者是 Docker Hub 賬戶 nigelpoulton,一個(gè)不應(yīng)該被信任的賬戶。

$ docker image pull nigelpoulton/tu-demo:v2
//該命令會(huì)從以我自己的 Docker Hub 賬號(hào)為命名空間的 tu-demo 庫中下載標(biāo)簽為 v2 的鏡像

在之前的 Windows 示例中,使用下面的兩條命令拉取了 PowerShell 和 .NET 鏡像。

> docker image pull microsoft/powershell:nanoserver

> docker image pull microsoft/dotnet:latest

第一條命令從 microsoft/powershell 倉庫中拉取了標(biāo)簽為 nanoserver 的鏡像,第二條命令從 microsoft/dotnet 倉庫中拉取了標(biāo)簽為 latest 的鏡像。

如果希望從第三方鏡像倉庫服務(wù)獲取鏡像(非 Docker Hub),則需要在鏡像倉庫名稱前加上第三方鏡像倉庫服務(wù)的 DNS 名稱。

假設(shè)上面的示例中的鏡像位于 Google 容器鏡像倉庫服務(wù)(GCR)中,則需要在倉庫名稱前面加上 gcr.io,如 docker pull gcr.io/nigelpoulton/tu-demo:v2(這個(gè)倉庫和鏡像并不存在)。

可能需要擁有第三方鏡像倉庫服務(wù)的賬戶,并在拉取鏡像前完成登錄。

為鏡像打多個(gè)標(biāo)簽

關(guān)于鏡像有一點(diǎn)不得不提,一個(gè)鏡像可以根據(jù)用戶需要設(shè)置多個(gè)標(biāo)簽。這是因?yàn)闃?biāo)簽是存放在鏡像元數(shù)據(jù)中的任意數(shù)字或字符串。一起來看下面的示例。

在 docker image pull 命令中指定 -a 參數(shù)來拉取倉庫中的全部鏡像。接下來可以通過運(yùn)行 docker image ls 查看已經(jīng)拉取的鏡像。

如果使用 Windows 示例,則可以將 Linux 示例中的鏡像倉庫 nigelpoulton/tu-demo 替換為 microsoft/nanoserver。

如果拉取的鏡像倉庫中包含用于多個(gè)平臺(tái)或者架構(gòu)的鏡像,比如同時(shí)包含 Linux 和 Windows 的鏡像,那么命令可能會(huì)失敗。

$ docker image pull -a nigelpoulton/tu-demo

latest: Pulling from nigelpoulton/tu-demo
237d5fcd25cf: Pull complete
a3ed95caeb02: Pull complete

Digest: sha256:42e34e546cee61adb1...3a0c5b53f324a9e1c1aae451e9
v1: Pulling from nigelpoulton/tu-demo
237d5fcd25cf: Already exists
a3ed95caeb02: Already exists

Digest: sha256:9ccc0c67e5c5eaae4b...624c1d5c80f2c9623cbcc9b59a
v2: Pulling from nigelpoulton/tu-demo
237d5fcd25cf: Already exists
a3ed95caeb02: Already exists

Digest: sha256:d3c0d8c9d5719d31b7...9fef58a7e038cf0ef2ba5eb74c
Status: Downloaded newer image for nigelpoulton/tu-demo

$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nigelpoulton/tu-demo v2 6ac21e..bead 1 yr ago 211.6 MB
nigelpoulton/tu-demo latest 9b915a..1e29 1 yr ago 211.6 MB
nigelpoulton/tu-demo v1 9b915a..1e29 1 yr ago 211.6 MB

剛才發(fā)生了如下幾件事情。

首先,該命令從 nigelpoulton/tu-demo 倉庫拉取了 3 個(gè)鏡像:latest、v1 以及 v2。

其次,注意看 docker image ls 命令輸出中的 IMAGE ID 這一列。發(fā)現(xiàn)只有兩個(gè)不同的 Image ID。這是因?yàn)閷?shí)際只下載了兩個(gè)鏡像,其中有兩個(gè)標(biāo)簽指向了相同的鏡像。

換句話說,其中一個(gè)鏡像擁有兩個(gè)標(biāo)簽。如果仔細(xì)觀察會(huì)發(fā)現(xiàn) v1 和 latest 標(biāo)簽指向了相同的 IMAGE ID,這意味著這兩個(gè)標(biāo)簽屬于相同的鏡像。

這個(gè)示例也完美證明了前文中關(guān)于 latest 標(biāo)簽使用的警告。latest 標(biāo)簽指向了 v1 標(biāo)簽的鏡像。這意味著 latest 實(shí)際指向了兩個(gè)鏡像中較早的那個(gè)版本,而不是最新的版本!latest 是一個(gè)非強(qiáng)制標(biāo)簽,不保證指向倉庫中最新的鏡像!

過濾 docker image ls 的輸出內(nèi)容

Docker 提供 --filter 參數(shù)來過濾 docker image ls 命令返回的鏡像列表內(nèi)容。

下面的示例只會(huì)返回懸虛(dangling)鏡像。

$ docker image ls --filter dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
  4fd34165afe0 7 days ago 14.5MB

那些沒有標(biāo)簽的鏡像被稱為懸虛鏡像,在列表中展示為<none>:<none>。

通常出現(xiàn)這種情況,是因?yàn)闃?gòu)建了一個(gè)新鏡像,然后為該鏡像打了一個(gè)已經(jīng)存在的標(biāo)簽。

當(dāng)此情況出現(xiàn),Docker 會(huì)構(gòu)建新的鏡像,然后發(fā)現(xiàn)已經(jīng)有鏡像包含相同的標(biāo)簽,接著 Docker 會(huì)移除舊鏡像上面的標(biāo)簽,將該標(biāo)簽標(biāo)在新的鏡像之上。

例如,首先基于 alpine:3.4 構(gòu)建一個(gè)新的鏡像,并打上 dodge:challenger 標(biāo)簽。然后更新 Dockerfile,將 alpine:3.4 替換為 alpine:3.5,并且再次執(zhí)行 docker image build 命令,該命令會(huì)構(gòu)建一個(gè)新的鏡像,并且標(biāo)簽為 dodge:challenger,同時(shí)移除了舊鏡像上面對應(yīng)的標(biāo)簽,舊鏡像就變成了懸虛鏡像。

可以通過 docker image prune 命令移除全部的懸虛鏡像。如果添加了 -a 參數(shù),Docker 會(huì)額外移除沒有被使用的鏡像(那些沒有被任何容器使用的鏡像)。

Docker 目前支持如下的過濾器。

? dangling:可以指定 true 或者 false,僅返回懸虛鏡像(true),或者非懸虛鏡像(false)。

? before:需要鏡像名稱或者 ID 作為參數(shù),返回在之前被創(chuàng)建的全部鏡像。

? since:與 before 類似,不過返回的是指定鏡像之后創(chuàng)建的全部鏡像。

? label:根據(jù)標(biāo)注(label)的名稱或者值,對鏡像進(jìn)行過濾。docker image ls命令輸出中不顯示標(biāo)注內(nèi)容。

其他的過濾方式可以使用 reference。

下面就是使用 reference 完成過濾并且僅顯示標(biāo)簽為 latest 的示例。

$ docker image ls --filter=reference="*:latest"
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 3fd9065eaf02 8 days ago 4.15MB
test latest 8426e7efb777 3 days ago 122MB

可以使用 --format 參數(shù)來通過 Go 模板對輸出內(nèi)容進(jìn)行格式化。例如,下面的指令將只返回 Docker 主機(jī)上鏡像的大小屬性。

$ docker image ls --format "{{.Size}}"
99.3MB
111MB
82.6MB
88.8MB
4.15MB
108MB

使用下面命令返回全部鏡像,但是只顯示倉庫、標(biāo)簽和大小信息。

$ docker image ls --format "{{.Repository}}: {{.Tag}}: {{.Size}}"
dodge: challenger: 99.3MB
ubuntu: latest: 111MB
python: 3.4-alpine: 82.6MB
python: 3.5-alpine: 88.8MB
alpine: latest: 4.15MB
nginx: latest: 108MB

如果讀者需要更復(fù)雜的過濾,可以使用 OS 或者 Shell 自帶的工具,比如 Grep 或者 AWK 。

通過 CLI 方式搜索 Docker Hub

docker search 命令允許通過 CLI 的方式搜索 Docker Hub??梢酝ㄟ^“NAME”字段的內(nèi)容進(jìn)行匹配,并且基于返回內(nèi)容中任意列的值進(jìn)行過濾。

簡單模式下,該命令會(huì)搜索所有“NAME”字段中包含特定字符串的倉庫。例如,下面的命令會(huì)查找所有“NAME”包含“nigelpoulton”的倉庫。

$ docker search nigelpoulton
NAME DESCRIPTION STARS AUTOMATED
nigelpoulton/pluralsight.. Web app used in... 8 [OK]
nigelpoulton/tu-demo 7
nigelpoulton/k8sbook Kubernetes Book web app 1
nigelpoulton/web-fe1 Web front end example 0
nigelpoulton/hello-cloud Quick hello-world image 0

“NAME”字段是倉庫名稱,包含了 Docker ID,或者非官方倉庫的組織名稱。例如,下面的命令會(huì)列出所有倉庫名稱中包含“alpine”的鏡像。

$ docker search alpine
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
alpine A minimal Docker.. 2988 [OK]
mhart/alpine-node Minimal Node.js.. 332
anapsix/alpine-java Oracle Java 8... 270 [OK]

需要注意,上面返回的鏡像中既有官方的也有非官方的。讀者可以使用 --filter "is-official=true",使命令返回內(nèi)容只顯示官方鏡像。

$ docker search alpine --filter "is-official=true"
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
alpine A minimal Docker.. 2988 [OK]

重復(fù)前面的操作,但這次只顯示自動(dòng)創(chuàng)建的倉庫。

$ docker search alpine --filter "is-automated=true"
NAME DESCRIPTION OFFICIAL AUTOMATED
anapsix/alpine-java Oracle Java 8 (and 7).. [OK]
frolvlad/alpine-glibc Alpine Docker image.. [OK]
kiasaki/alpine-postgres PostgreSQL docker.. [OK]
zzrot/alpine-caddy Caddy Server Docker.. [OK]

關(guān)于 docker search 需要注意的最后一點(diǎn)是,默認(rèn)情況下,Docker 只返回 25 行結(jié)果。但是,可以通過指定 --limit 參數(shù)來增加返回內(nèi)容行數(shù),最多為 100 行。

鏡像和分層

Docker 鏡像由一些松耦合的只讀鏡像層組成。如下圖所示。

Docker 負(fù)責(zé)堆疊這些鏡像層,并且將它們表示為單個(gè)統(tǒng)一的對象。

查看鏡像分層的方式可以通過 docker image inspect 命令。下面同樣以 ubuntu:latest 鏡像為例。

$ docker image inspect ubuntu:latest
[
{
"Id": "sha256:bd3d4369ae.......fa2645f5699037d7d8c6b415a10",
"RepoTags": [
"ubuntu:latest"



"RootFS": {
  "Type": "layers",
  "Layers": [
   "sha256:c8a75145fc...894129005e461a43875a094b93412",
   "sha256:c6f2b330b6...7214ed6aac305dd03f70b95cdc610",
   "sha256:055757a193...3a9565d78962c7f368d5ac5984998",
   "sha256:4837348061...12695f548406ea77feb5074e195e3",
   "sha256:0cad5e07ba...4bae4cfc66b376265e16c32a0aae9"
  ]
  }
}
]

縮減之后的輸出也顯示該鏡像包含 5 個(gè)鏡像層。只不過這次的輸出內(nèi)容中使用了鏡像的 SHA256 散列值來標(biāo)識(shí)鏡像層。不過,兩中命令都顯示了鏡像包含 5 個(gè)鏡像層。

docker history 命令顯示了鏡像的構(gòu)建歷史記錄,但其并不是嚴(yán)格意義上的鏡像分層。例如,有些 Dockerfile 中的指令并不會(huì)創(chuàng)建新的鏡像層。比如 ENV、EXPOSE、CMD 以及 ENTRY- POINT。不過,這些命令會(huì)在鏡像中添加元數(shù)據(jù)。

所有的 Docker 鏡像都起始于一個(gè)基礎(chǔ)鏡像層,當(dāng)進(jìn)行修改或增加新的內(nèi)容時(shí),就會(huì)在當(dāng)前鏡像層之上,創(chuàng)建新的鏡像層。

舉一個(gè)簡單的例子,假如基于 Ubuntu Linux 16.04 創(chuàng)建一個(gè)新的鏡像,這就是新鏡像的第一層;如果在該鏡像中添加 Python 包,就會(huì)在基礎(chǔ)鏡像層之上創(chuàng)建第二個(gè)鏡像層;如果繼續(xù)添加一個(gè)安全補(bǔ)丁,就會(huì)創(chuàng)建第三個(gè)鏡像層。

該鏡像當(dāng)前已經(jīng)包含 3 個(gè)鏡像層,如下圖所示(這只是一個(gè)用于演示的很簡單的例子)。

在添加額外的鏡像層的同時(shí),鏡像始終保持是當(dāng)前所有鏡像的組合,理解這一點(diǎn)非常重要。下圖中舉了一個(gè)簡單的例子,每個(gè)鏡像層包含 3 個(gè)文件,而鏡像包含了來自兩個(gè)鏡像層的 6 個(gè)文件。

上圖中的鏡像層跟之前圖中的略有區(qū)別,主要目的是便于展示文件。

下圖中展示了一個(gè)稍微復(fù)雜的三層鏡像,在外部看來整個(gè)鏡像只有 6 個(gè)文件,這是因?yàn)樽钌蠈又械奈募?7 是文件 5 的一個(gè)更新版本。

這種情況下,上層鏡像層中的文件覆蓋了底層鏡像層中的文件。這樣就使得文件的更新版本作為一個(gè)新鏡像層添加到鏡像當(dāng)中。

Docker 通過存儲(chǔ)引擎(新版本采用快照機(jī)制)的方式來實(shí)現(xiàn)鏡像層堆棧,并保證多鏡像層對外展示為統(tǒng)一的文件系統(tǒng)。

Linux 上可用的存儲(chǔ)引擎有 AUFS、Overlay2、Device Mapper、Btrfs 以及 ZFS。顧名思義,每種存儲(chǔ)引擎都基于 Linux 中對應(yīng)的文件系統(tǒng)或者塊設(shè)備技術(shù),并且每種存儲(chǔ)引擎都有其獨(dú)有的性能特點(diǎn)。

Docker 在 Windows 上僅支持 windowsfilter 一種存儲(chǔ)引擎,該引擎基于 NTFS 文件系統(tǒng)之上實(shí)現(xiàn)了分層和 CoW[1]。

下圖展示了與系統(tǒng)顯示相同的三層鏡像。所有鏡像層堆疊并合并,對外提供統(tǒng)一的視圖。

共享鏡像層

多個(gè)鏡像之間可以并且確實(shí)會(huì)共享鏡像層。這樣可以有效節(jié)省空間并提升性能。

回顧一下之前用于拉取 nigelpoulton/tu-demo 倉庫下全部包含標(biāo)簽的 docker image pull 命令(包含 -a 參數(shù))。

$ docker image pull -a nigelpoulton/tu-demo

latest: Pulling from nigelpoulton/tu-demo
237d5fcd25cf: Pull complete
a3ed95caeb02: Pull complete

Digest: sha256:42e34e546cee61adb100...a0c5b53f324a9e1c1aae451e9

v1: Pulling from nigelpoulton/tu-demo
237d5fcd25cf: Already exists
a3ed95caeb02: Already exists

Digest: sha256:9ccc0c67e5c5eaae4beb...24c1d5c80f2c9623cbcc9b59a

v2: Pulling from nigelpoulton/tu-demo
237d5fcd25cf: Already exists
a3ed95caeb02: Already exists

eab5aaac65de: Pull complete
Digest: sha256:d3c0d8c9d5719d31b79c...fef58a7e038cf0ef2ba5eb74c

Status: Downloaded newer image for nigelpoulton/tu-demo

$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nigelpoulton/tu-demo v2 6ac...ead 4 months ago 211.6 MB
nigelpoulton/tu-demo latest 9b9...e29 4 months ago 211.6 MB
nigelpoulton/tu-demo v1 9b9...e29 4 months ago 211.6 MB

注意那些以 Already exists 結(jié)尾的行。

由這幾行可見,Docker 很聰明,可以識(shí)別出要拉取的鏡像中,哪幾層已經(jīng)在本地存在。

在本例中,Docker 首先嘗試?yán)?biāo)簽為 latest 的鏡像。然后,當(dāng)拉取標(biāo)簽為 v1 和 v2 的鏡像時(shí),Docker 注意到組成這兩個(gè)鏡像的鏡像層,有一部分已經(jīng)存在了。出現(xiàn)這種情況的原因是前面 3 個(gè)鏡像相似度很高,所以共享了很多鏡像層。

如前所述,Docker 在 Linux 上支持很多存儲(chǔ)引擎(Snapshotter)。每個(gè)存儲(chǔ)引擎都有自己的鏡像分層、鏡像層共享以及寫時(shí)復(fù)制(CoW)技術(shù)的具體實(shí)現(xiàn)。

但是,其最終效果和用戶體驗(yàn)是完全一致的。盡管 Windows 只支持一種存儲(chǔ)引擎,還是可以提供與 Linux 相同的功能體驗(yàn)。

根據(jù)摘要拉取鏡像

咱們前面介紹了通過標(biāo)簽來拉取鏡像,這也是常見的方式。但問題是,標(biāo)簽是可變的!這意味著可能偶爾出現(xiàn)給鏡像打錯(cuò)標(biāo)簽的情況,有時(shí)甚至?xí)o新鏡像打一個(gè)已經(jīng)存在的標(biāo)簽。這些都可能導(dǎo)致問題!

假設(shè)鏡像 golftrack:1.5 存在一個(gè)已知的 Bug。因此可以拉取該鏡像后修復(fù)它,并使用相同的標(biāo)簽將更新的鏡像重新推送回倉庫。

一起來思考下剛才發(fā)生了什么。鏡像 golftrack:1.5 存在 Bug,這個(gè)鏡像已經(jīng)應(yīng)用于生產(chǎn)環(huán)境。如果創(chuàng)建一個(gè)新版本的鏡像,并修復(fù)了這個(gè) Bug。

那么問題來了,構(gòu)建新鏡像并將其推送回倉庫時(shí)使用了與問題鏡像相同的標(biāo)簽!原鏡像被覆蓋,但在生產(chǎn)環(huán)境中遺留了大量運(yùn)行中的容器,沒有什么好辦法區(qū)分正在使用的鏡像版本是修復(fù)前還是修復(fù)后的,因?yàn)閮蓚€(gè)鏡像的標(biāo)簽是相同的!

Docker 1.10 中引入了新的內(nèi)容尋址存儲(chǔ)模型。作為模型的一部分,每一個(gè)鏡像現(xiàn)在都有一個(gè)基于其內(nèi)容的密碼散列值。

為了討論方便,用摘要代指這個(gè)散列值。因?yàn)檎晴R像內(nèi)容的一個(gè)散列值,所以鏡像內(nèi)容的變更一定會(huì)導(dǎo)致散列值的改變。這意味著摘要是不可變的。這種方式可以解決前面討論的問題。

每次拉取鏡像,摘要都會(huì)作為 docker image pull 命令返回代碼的一部分。只需要在 docker image ls 命令之后添加 --digests 參數(shù)即可在本地查看鏡像摘要。

接下來通過示例進(jìn)行相關(guān)演示。

$ docker image pull alpine
Using default tag: latest
latest: Pulling from library/alpine
e110a4a17941: Pull complete
Digest: sha256:3dcdb92d7432d56604d...6d99b889d0626de158f73a
Status: Downloaded newer image for alpine:latest

$ docker image ls --digests alpine
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
alpine latest sha256:3dcd...f73a 4e38e38c8ce0 10 weeks ago 4.8 MB

從上面的代碼片段中可知,Alpine 鏡像的簽名值如下。

sha256:3dcdb92d7432d56604d... 6d99b889d0626de158f73a。

現(xiàn)在已知鏡像的摘要,那么可以使用摘要值再次拉取這個(gè)鏡像。這種方式可以確保準(zhǔn)確拉取想要的鏡像。

沒有原生 Docker 命令支持從遠(yuǎn)端鏡像倉庫服務(wù)(如Docker Hub)中獲取鏡像簽名。這意味著只能先通過標(biāo)簽方式拉取鏡像到本地,然后自己維護(hù)鏡像的摘要列表。鏡像摘要在未來絕對不會(huì)發(fā)生變化。

下面通過示例首先在 Docker 主機(jī)上刪除 alpine:latest 鏡像,然后顯示如何通過摘要(而不是標(biāo)簽)來再次拉取該鏡像。

$ docker image rm alpine:latest
Untagged: alpine:latest
Untagged: alpine@sha256:c0537...7c0a7726c88e2bb7584dc96
Deleted: sha256:02674b9cb179d...abff0c2bf5ceca5bad72cd9
Deleted: sha256:e154057080f40...3823bab1be5b86926c6f860

$ docker image pull alpine@sha256:c0537...7c0a7726c88e2bb7584dc96
sha256:c0537...7726c88e2bb7584dc96: Pulling from library/alpine
cfc728c1c558: Pull complete
Digest: sha256:c0537ff6a5218...7c0a7726c88e2bb7584dc96
Status: Downloaded newer image for alpine@sha256:c0537...bb7584dc96

鏡像散列值(摘要)

從 Docker 1.10 版本開始,鏡像就是一系列松耦合的獨(dú)立層的集合。

鏡像本身就是一個(gè)配置對象,其中包含了鏡像層的列表以及一些元數(shù)據(jù)信息。

鏡像層才是實(shí)際數(shù)據(jù)存儲(chǔ)的地方(比如文件等,鏡像層之間是完全獨(dú)立的,并沒有從屬于某個(gè)鏡像集合的概念)。

鏡像的唯一標(biāo)識(shí)是一個(gè)加密 ID,即配置對象本身的散列值。每個(gè)鏡像層也由一個(gè)加密 ID 區(qū)分,其值為鏡像層本身內(nèi)容的散列值。

這意味著修改鏡像的內(nèi)容或其中任意的鏡像層,都會(huì)導(dǎo)致加密散列值的變化。所以,鏡像和其鏡像層都是不可變的,任何改動(dòng)都能很輕松地被辨別。

這就是所謂的內(nèi)容散列(Content Hash)。

到目前為止,事情都很簡單。但是接下來的內(nèi)容就有點(diǎn)兒復(fù)雜了。

在推送和拉取鏡像的時(shí)候,都會(huì)對鏡像層進(jìn)行壓縮來節(jié)省網(wǎng)絡(luò)帶寬以及倉庫二進(jìn)制存儲(chǔ)空間。

但是壓縮會(huì)改變鏡像內(nèi)容,這意味著鏡像的內(nèi)容散列值在推送或者拉取操作之后,會(huì)與鏡像內(nèi)容不相符!這顯然是個(gè)問題。

例如,在推送鏡像層到 Docker Hub 的時(shí)候,Docker Hub 會(huì)嘗試確認(rèn)接收到的鏡像沒有在傳輸過程中被篡改。

為了完成校驗(yàn),Docker Hub 會(huì)根據(jù)鏡像層重新計(jì)算散列值,并與原散列值進(jìn)行比較。

因?yàn)殓R像在傳輸過程中被壓縮(發(fā)生了改變),所以散列值的校驗(yàn)也會(huì)失敗。

為避免該問題,每個(gè)鏡像層同時(shí)會(huì)包含一個(gè)分發(fā)散列值(Distribution Hash)。這是一個(gè)壓縮版鏡像的散列值,當(dāng)從鏡像倉庫服務(wù)拉取或者推送鏡像的時(shí)候,其中就包含了分發(fā)散列值,該散列值會(huì)用于校驗(yàn)拉取的鏡像是否被篡改過。

這個(gè)內(nèi)容尋址存儲(chǔ)模型極大地提升了鏡像的安全性,因?yàn)樵诶『屯扑筒僮骱筇峁┝艘环N方式來確保鏡像和鏡像層數(shù)據(jù)是一致的。

該模型也解決了隨機(jī)生成鏡像和鏡像層 ID 這種方式可能導(dǎo)致的 ID 沖突問題。

多層架構(gòu)的鏡像

Docker 最值得稱贊的一點(diǎn)就是使用方便。例如,運(yùn)行一個(gè)應(yīng)用就像拉取鏡像并運(yùn)行容器這么簡單。無須擔(dān)心安裝、依賴或者配置的問題。開箱即用。

但是,隨著 Docker 的發(fā)展,事情開始變得復(fù)雜——尤其是在添加了新平臺(tái)和架構(gòu)之后,例如 Windows、ARM 以及 s390x。

這是會(huì)突然發(fā)現(xiàn),在拉取鏡像并運(yùn)行之前,需要考慮鏡像是否與當(dāng)前運(yùn)行環(huán)境的架構(gòu)匹配,這破壞了 Docker 的流暢體驗(yàn)。

多架構(gòu)鏡像(Multi-architecture Image)的出現(xiàn)解決了這個(gè)問題!

Docker(鏡像和鏡像倉庫服務(wù))規(guī)范目前支持多架構(gòu)鏡像。這意味著某個(gè)鏡像倉庫標(biāo)簽(repository:tag)下的鏡像可以同時(shí)支持 64 位 Linux、PowerPC Linux、64 位 Windows 和 ARM 等多種架構(gòu)。

簡單地說,就是一個(gè)鏡像標(biāo)簽之下可以支持多個(gè)平臺(tái)和架構(gòu)。下面通過實(shí)操演示該特性。

為了實(shí)現(xiàn)這個(gè)特性,鏡像倉庫服務(wù) API 支持兩種重要的結(jié)構(gòu):Manifest 列表(新)和 Manifest。

Manifest 列表是指某個(gè)鏡像標(biāo)簽支持的架構(gòu)列表。其支持的每種架構(gòu),都有自己的 Mainfest 定義,其中列舉了該鏡像的構(gòu)成。

下圖使用 Golang 官方鏡像作為示例。圖左側(cè)是 Manifest 列表,其中包含了該鏡像支持的每種架構(gòu)。

Manifest 列表的每一項(xiàng)都有一個(gè)箭頭,指向具體的 Manifest,其中包含了鏡像配置和鏡像層數(shù)據(jù)。

在具體操作之前,先來了解一下原理。

假設(shè)要在 Raspberry Pi(基于 ARM 架構(gòu)的 Linux)上運(yùn)行 Docker。

在拉取鏡像的時(shí)候,Docker 客戶端會(huì)調(diào)用 Docker Hub 鏡像倉庫服務(wù)相應(yīng)的 API 完成拉取。

如果該鏡像有 Mainfest 列表,并且存在 Linux on ARM 這一項(xiàng),則 Docker Client 就會(huì)找到 ARM 架構(gòu)對應(yīng)的 Mainfest 并解析出組成該鏡像的鏡像層加密 ID。

然后從 Docker Hub 二進(jìn)制存儲(chǔ)中拉取每個(gè)鏡像層。

下面的示例就展示了多架構(gòu)鏡像是如何在拉取官方 Golang 鏡像(支持多架構(gòu))時(shí)工作的,并且通過一個(gè)簡單的命令展示了 Go 的版本和所在主機(jī)的 CPU 架構(gòu)。

需要注意的是,兩個(gè)例子都使用相同的命令 docker container run。不需要告知 Docker 具體的鏡像版本是 64 位 Linux 還是 64 位 Windows。

示例中只運(yùn)行了普通的命令,選擇當(dāng)前平臺(tái)和架構(gòu)所需的正確鏡像版本是有由 Docker 完成的。

64 位 Linux 示例如下。

$ docker container run --rm golang go version

Unable to find image 'golang:latest' locally
latest: Pulling from library/golang
723254a2c089: Pull complete
<Snip>
39cd5f38ffb8: Pull complete
Digest: sha256:947826b5b6bc4...
Status: Downloaded newer image for golang:latest
go version go1.9.2 linux/amd64

64 位 Windows 示例如下。

PS> docker container run --rm golang go version

Using default tag: latest
latest: Pulling from library/golang
3889bb8d808b: Pull complete
8df8e568af76: Pull complete
9604659e3e8d: Pull complete
9f4a4a55f0a7: Pull complete
6d6da81fc3fd: Pull complete
72f53bd57f2f: Pull complete
6464e79d41fe: Pull complete
dca61726a3b4: Pull complete
9150276e2b90: Pull complete
cd47365a14fb: Pull complete
1783777af4bb: Pull complete
3b8d1834f1d7: Pull complete
7258d77b22dd: Pull complete
Digest: sha256:e2be086d86eeb789...e1b2195d6f40edc4
Status: Downloaded newer image for golang:latest
go version go1.9.2 windows/amd64

前面的操作包括從 Docker Hub 拉取 Golang 鏡像,以容器方式啟動(dòng),執(zhí)行 go version 命令,并且輸出 Go 的版本和主機(jī) OS / CPU 架構(gòu)信息。

每個(gè)示例的最后一行都展示了 go version 命令的輸出內(nèi)容??梢钥吹絻蓚€(gè)示例使用了完全相同的命令,但是 Linux 示例中拉取的是 linux/amd64 鏡像,而 Windows 示例中拉取的是 windows/amd64 鏡像。

所有官方鏡像都支持 Manifest 列表。但是,全面支持各種架構(gòu)的工作仍在推進(jìn)當(dāng)中。

創(chuàng)建支持多架構(gòu)的鏡像需要鏡像的發(fā)布者做更多的工作。同時(shí),某些軟件也并非跨平臺(tái)的。在這個(gè)前提下,Manifest 列表是可選的——在沒有 Manifest 列表的情況下,鏡像倉庫服務(wù)會(huì)返回普通的 Manifest。

全部教程
蜜桃视频18在线观看| 在线播放国产免费av| x8x8免费在线观看视频| 国产又粗又长又硬又猛又黄的视频| 丝袜美腿色诱视频在线观看| 偷拍自拍视频图片免费| 玩弄放荡人妻少妇精品| 超级碰碰碰碰碰碰碰碰碰| 教资是不是人人都可以考| 男的扒开女的下面狂操视频| 亚洲欧美 在线视频| 亚洲另类欧美在线观看| 在线播放国产免费av| 伊人精品在线大香蕉| 成年大片40分钟免费视频播放| 久久久久国产一毛片高清| 亚洲卡一卡二卡三新区| 浪荡人妻共32部分黑人| 天天碰天天摸人人看| 公一区二区三区高清99| 亚洲人成青青操免费观看| av一区二区二十四小时| 日本免费播放一区二区三区 | 日韩中文字幕免费大片| 婷婷视频在线观看一区的| 在线小视频,你懂的| 亚洲av午夜精品一老妈| 熟女人妻av中文字幕| 偷拍亚洲另类图片视频| 国产又大又粗又硬又爽视频| 亚洲欧美另类专区第一页| 午夜国产福利视频一区二区| 欧美亚洲综合偷拍另类| 精品成人午夜免费看| 日韩加勒比东京热二区| 中文字幕不卡av在线播放| 亚洲日产av一区二区在线| 久久精品视频全部视频在线| 四川操bb操bb操b| 婷婷亚洲综合在线五月天| 亚洲国产aⅴ成人精品无吗| 中文有码一区二区三区| 亚洲免费观看小视频| 超碰在线观看97视频| 亚洲日本一区二区嫩草| 大鸡巴爆操美女骚逼| 亚洲国内自拍愉拍影音先锋| 久久久久久久久毛片精品奶炮 | 久久躁夜夜躁日日躁狠狠躁| 91 chinese 在线播放| 一区二区中文字幕18| 视频在线观看免费99| av在线播放网站资源| 97国产婷婷在线观看| 最新亚洲成人黄色片| 国产c片免费观看| aaa222男人天堂| 三级黄色亚洲成人av| 婷婷亚洲综合在线五月天| 亚洲免费观看小视频| 久久精品在线观看免费视频| 婷婷色综合久久五月天| 中文字幕第一区久久| 亚洲图片,自拍偷拍网| 亚洲av永久久久久久久蜜桃 | 色婷婷亚洲久久97成人| 日本性少妇xxxx| 亚洲天堂网久久av| yy111111少妇蜜桃| 亚洲天堂欧美中文字幕| 我用力操你在线视频| 欧美激情性4一级完整版| 性色av一区二区三区观看| 亚洲国产精品日日夜夜| 天天操天天色天天天| 变态另类97人妻av| 精品国产污污免费网站aⅴ17| 大鸡巴操的好爽好舒服啊视频| 久久精品国产二区AV无码| 国模视频写真一区二区| 福利视频国产在线在线观看| 大黑鸡巴 狂插 欧亚小嫩逼| 怡红院精彩视频在线观看| 日韩高清视频在线播放| 日本av高清免费观看| 国内精品久久久久精品爽爽| 精品人妻欧美一区二区| 中文字幕久久久久久人妻| 国产1区2区在线视频| 东北老熟女疯狂作爱视频| 国产在线免播放器不卡| 国产成人午夜精品视频| 黄色 成年人 免费观看| 99,九九,久久精品| 污污污视频在线观看91| 精品少妇人妻av免费久久胖妇| 最新日韩成人毛片在线| 999久久久精品精品| 欧美 亚洲 激情 自拍| 大吊插入素人骚穴内射视频播放 | mm在线视频观看免费观看| caoporn香蕉在线观看| 日韩一区二区视频在线看 | 午夜福利免费福利视频| 偷拍亚洲另类图片视频| 2012在线国语中文字幕| 91免费观看国产精品| 国产成人一区二区三区久| 久久三级片一区二区毛片| 草逼美女逼话多的视频出水| 欧美一级特黄aaaaaa片| 亚洲国产精品av久久久| 五月天亚洲精品综合网 | 可以在线观看的黄色网页| 宝贝把腿张开让我添| 又黑又硬又粗又黄又猛| 青青草青青草成人免费公开| 人妻熟妇丰满不伦一区二区三区| 亚洲欧美 在线视频| 亚洲国产精品自拍视频在线观看| 久久久亚洲精品熟妇少妇| 98视频在线免费观看| 四川操bb操bb操b| 日本黄页网络站免费| 女抽插流出张开淫水视频| 国产美女视频在线播放| 青娱乐青青草丁香婷婷| 国产欧美精品va在线观看| 大香蕉伊人免费在线| 97偷偷碰在线视频| xfplay亚洲资源| 亚洲久久久久久久久久久久久久 | 中文字幕黄色av网址| 国产成人午夜精品视频| 国产中文字幕在线免费播放| fc2精品成人免费观看| 干风骚美女av在线| 狠狠躁日日躁夜夜躁视频| 欧美在线播放一二区不卡| 91久色porny视频在线| 亚洲五区四区欧美视频| 97超碰在线cao| 亚洲自拍偷拍视频二区| 91麻豆精品国产乱码久久久久久| 99精品老司机免费视频| 精品久久久久aⅴ一区二区| 天天操天天色天天天| 手机在线免费视频一区二区三区 | 丰满人妻被猛烈进入中文字幕四川| 午夜网在线观看视频| 超碰人人澡人人碰人人| 教资是不是人人都可以考| 伊人大香线蕉亚洲五月天| 播放灌醉水嫩大学生国内精品| 欧美视频一区二区三区在线观看| 日日夜夜夜操天天干| 欧美va久久久噜噜噜久久| 日本熟妇丰满厨房55| yy111111少妇蜜桃| lisaann在线观看| 亚洲中文有码一区二区| 中文字幕精品av在线观看| 在线中文字幕综合一区| 欧美,偷拍,另类,综合| 可以直接在线观看的一区| av在线播放网站资源| 在线精品亚洲区一区二区| 成人福利电影免费网址| 国内精品久久久久精品爽爽| 91老熟女连续高潮对白| 一区二区三区精品在线免费视频| av男人免费的天堂| 大香蕉伊人免费在线| 神乃麻美三级在线观看视频| 亚洲伊人av 综合福利| 亚洲妇熟xxxx妇色黄网站| 童话村热久久精品精| 亚洲精品综合视频自拍| xfplay亚洲资源| av在线手机免费观看| 9l九色自拍蝌蚪9l视频| 熟女一区二区三区四区五区视频| 999久久久无码精品免费看片| 亚洲精品乱码久久观看网| 日韩中文字幕免费大片| www国产亚洲天堂| 精品99久久久久久www| 五月婷婷综合久久久| 亚洲国产精彩中文乱码av| 久久久久久久久久久蜜桃| 老师让我插进去69AV| 蜜臀 av一区二区| 日本少妇精品bbwbbw| 日本av高清免费观看| 天天插天天爱天天日| 亚洲国产精品国自产拍a∨| 91久久国产丁香精品中文| 亚洲欧美另类图片88| 亚洲综合欧美熟一区| 欧美 日韩 中文 字幕| 国产在线免播放器不卡| 性感的人妻在线观看| 亚洲中文有码一区二区| 日本a爱视频二区三区| 亚洲欧美综合区丁香六月| 成人大片免费看45分钟| 中文字幕av网址大全| 国产国产午夜全部视频| 起碰97视频在线播放| 久久亚洲伊人99精品影院| 我用力操你在线视频| 公一区二区三区高清99| 婷婷亚洲综合在线五月天| 日韩精品高清免费视频| 啪啪在线视频免费观看| 丝袜美腿色诱视频在线观看| 女抽插流出张开淫水视频| 熟女人妻人妻のhd| Av资源站中文字幕| 夜夜骑加勒比天天操| 亚洲av性色在线观看黄色| 中文字幕最新色片av| 男人爽爽女人的视频一区二区三区| 天天操天天操天天干天天| 51日日夜夜精品视频| 不卡精品国产_亚洲人成在线| 亚洲精品少妇久久久久久| 在线人妻视频网站免费| 久久99精品久久久久久小说| 亚洲另类熟女国产精品老| 1777中文字幕字幕在线播放| 超碰人人澡人人碰人人| 少妇的激情夜夜爽爽爽爽爽| 看男破处女人逼黄色片观看| 午夜国产福利视频一区二区| 中国福利在线黄色片| 成人熟女一区二区三区| 中文字幕亚洲日韩第一页| 久久精品国产亚洲av视瓶| 国产伦精品三区精品国偷自产在线 | 成人一级黄色片免费看| 亚洲av性色在线观看黄色| 亚洲偷偷自拍视频网| 天天干夜夜操日日操| 大香蕉大香蕉在线播放| 干风骚美女av在线| 91久久综合九色综合欧美98| 天天插天天摸天天爱| 欧洲日韩视频一区二区三区| 亚洲国产精品国自产拍a∨| 国产精品啊啊啊不要在线观看 | 亚洲欧美伦理一区二区| 成年女人毛片免费在线播放| 亚洲妇熟xxxx妇色黄网站| 亚洲人成小说网站色在线| 欧美精品综合第一页| 狠狠躁日日躁夜夜躁视频| 人人妻在线视频97| 十分钟在线观看视频| 国产三级av在线免费观看| 操人妻一区二区三区| 丰满雪白人妻人爽16av精品| 欧美 日韩 中文 字幕| 亚洲女同性同志熟女女同| 偷拍自拍视频图片免费| 中文字幕不卡av在线播放| 国模视频写真一区二区| 99精品国产免费久久久久久| 自拍第一页免费视频| 亚洲va欧美va人人爽午夜 | 国产又黄又粗又硬又大又猛的视频| 公一区二区三区高清99| 亚洲日产av一区二区在线| fc2精品成人免费观看| 北条麻妃制服丝袜在线播放| 蜜桃一区二区17c| 亚洲av男人的天堂久久久| 天天天天拍天天天天天天| 97偷偷碰在线视频| 国产成人女人毛毛片视频| 精品岛国产熟女人妻欲求不满| 婷婷亚洲综合在线五月天| 五月婷婷综合久久久| 欧美黄色免费在线网站| 欧美一区视频不卡高清| 免费一级黄色片麻豆系列| 中文字幕最新色片av| 国产mm视频在线观看| 风间由美亚洲一区二区三区| 好的一级毛片免费毛片直播| 丝袜美腿视频诱惑亚洲| 人妻中文字幕不卡av观看| 日韩破处精品在线观看| 亚洲欧美日韩偷窥自拍| 亚洲视频专区在线播放| 98资源站精品视频在线观看| 免费观看黄色韩日av| 人妻熟妇丰满不伦一区二区三区| 美女 激情 欧美 日韩| 都市激情校园春色av| 久国产一二三区四区乱码2021| 欧美亚洲国产校园春色| 国语对白xxxx乱大交| 日本日本熟妇中文在线视频| 国产喷水在线免费观看| 男女精品久久久久久久久久| 超碰人妻中文字幕在线| m3u8在线播放91| 97视频人人人人人性| 天堂av在线中文在线新版| 天天插天天色天天透| 在线播放 国产 真实| 亚洲精品 国产成人| 十八禁视频一区二区三区四区| 天天睡天天摸天天添天天日天天射 | 美女吃鸡巴黑料破处自慰 | 自拍偷拍亚洲黄色照片| 国产免费一级高清淫日本片| 国产免费av不卡免费| 久久精品亚洲国产| 富二代av一区二区| 亚洲少妇av在线播放| 干 白虎 少妇 嫩 逼 视频| 国产一级二级三级亚洲| 在线播放国产免费av| 中国熟妇丰满大乳大屁股 | 182tv在线福利视频| av在线手机免费观看| 男人爽爽女人的视频一区二区三区| 无人码一区二区三区视频| 精品熟女后入一区二区三区| 啪啪男女日韩网站蜜桃| 偷窥中国丰满多毛老熟女| 黄色污污污网站免费观看| 大肉大捧一进一出免费视频网址| 亚洲天堂男人的天堂av| 欧美在线一区日韩国产| 国产日韩欧美精品久久久一区二区| 亚洲欧美伦理一区二区| 欧美熟妇搡bbbb水蜜桃| 妍强被迫伦姧惨叫123| 97视频人人人人人性| 欧美一区二区蜜桃视频| 91人妻人人做人人爽九色全集| 大肉大捧一进一出免费视频网址| 91精品国产自产在线大长腿| 天天扣天天日天天摸| 日韩欧美在线一区二区在线| 两个人午夜免费看视频| 一区二区三区在线 日韩| 在线视频你懂的视频| 97精品国产高清在线| 亚洲主要位于五带中的什么带?| 亚洲国产精品av久久久| 熟女免费在线观看视频| 五月天亚洲精品综合网| 精品人妻一区三区三区| 婷婷丁香花综合激情五月天| 男生用大鸡巴捅女生的视频| 超碰chaopeng 国产| av在线操亚洲图片| 日本性感黑丝美女一区二区| 午夜精品不卡视频在线观看| 最新人妻熟女中文字幕| av乱亚洲一区二区三区 | 干风骚美女av在线| 伊人精品在线大香蕉| 女人样男人用大鸡巴操她的逼逼 | 公一区二区三区高清99| 熟女吧国产精品一区二区三区| 亚洲伊人av 综合福利| 国产精品自拍亚洲春色| 另类图片亚洲图区第一页| 公一区二区三区高清99| 欧美最猛黑人xxxx黑人猛交文| 成人熟女一区二区三区| 熟女人妻人妻のhd| 亚洲日产av一区二区在线| 丁香激情五月天综合网| 在线观看成人激情av| 亚洲一区 成人在线| 丝袜制服 亚洲 国产 91| 办公室被吃奶好爽在线观看视频| 国产亚洲精品电影aa在线观看| 亚洲美女乱1区2区3区| 欧洲av性色在线看| av大片在线观看免费| 99久久精品久久久久久清纯| 亚洲三级这里只有精品| 亚洲综合一区二区人妻| 东游记中文字幕版哪里可以看到| 日韩成人在线电影,| 91精品国产国语自拈产在| 亚洲激情视频免费在线| 大鸡巴爆操美女骚逼| 在线观看av久久久| 啪啪啪免费亚洲精品网站| 精品人妻欧美一区二区| av网址在线观看日韩| 草草影院黄色在线观看| 少妇的激情夜夜爽爽爽爽爽| 偷拍亚洲另类图片视频| 天天爱天天日天天干天天做| 天天插天天摸天天爱| 丝袜制服 亚洲 国产 91| 国产国语露脸在线视频播放| 手机在线免费视频一区二区三区| 国产精品啊啊啊不要在线观看| 亚洲一区二区三区免费| 亚洲视频免费观看不卡| 91高清免费观看在线| 老男人久久青草av高清| 蜜臀 av一区二区| 亚洲欧美日韩不卡人妻中文字幕| aaa222男人天堂| 在线观看国产视频99| 怡红院精彩视频在线观看| 亚洲国产精品av久久久| 青青热久免费精品视频21 | 自拍偷拍亚洲黄色照片| 欧美一区视频不卡高清| 亚洲五区四区欧美视频| 88888欧美精品久久久| 精品视频在线观看久久 | 精品无人区高清免费看| 国产福利中文字幕导航| av 在线 麻豆| 筱田优在线播放一区二区三区| 色噜噜在线综合亚洲欧美| 十分钟在线观看视频| 午夜福利啪啪视频免费看| 国产九九视频在线观看| 欧美激情性4一级完整版| 自拍分享国产亚洲欧美| 一区二区三区欧美日韩电影| 久久精品亚洲国产一区二区| 久久精品国产亚洲av视瓶 | 天天扣天天日天天摸| 人妻a∨在线中文字幕| 狂野小农民在线高清| 一区二区三区四区不卡在线观看| 在线小视频,你懂的| 美女av网站在线观看| 深夜亚洲精品免费福利你懂的| 日本黄页网络站免费| 91久久香蕉国产熟女| 在线观看小视频国产| 超碰在线观看97视频| 偷窥中国丰满多毛老熟女| 亚洲国产成人在线观看网址| 亚洲视频 中文字幕 人妻| 亚洲一区二区成人综合| 98久久久久98久久久久| 欧美视频精品免费观看| 色欲天天天久久久综合| 好男人资源在线视频观看社区| 在线观看懂色精品大神视频| 免费二区三区四区在线观看| 人妻天天爽夜夜爽麻豆av| 成人教育 在线学习| 骚白虎插入在线观看| 久久久久久久久毛片精品奶炮| 少妇人妻中文字幕专区视频| 亚洲欧美日韩不卡人妻中文字幕| 97色 国产精品综合| 国产mm视频在线观看| 亚洲三级这里只有精品| 日韩av中文字幕网址| 久久精精品久久久噜噜| 91精选视频在线播放| 丝袜美图一区二区三区| 东北老熟女疯狂作爱视频| 96h久久国产激情| 99久久免费国产特黄| 欧洲野外激情性视频| 欧洲日韩视频一区二区三区| 国产美女主播丝袜高潮白浆| 97视频人人人人人性| 午夜精品久久久久久99| 偷拍自拍 中文字幕| 国产精品黄色自拍视频| 天天扣天天日天天摸| 日本片免费a在线观看| 亚洲国产日韩欧美高清片vr| 蜜桃av在线网址观看| 亚洲,自拍,中文,另类| 黄色av免费下载软件| 夭天曰天天躁东京热天天摸| 国产伦精品一区二区黑人| 免费观看视频一区二区三区| 免费在线观看网址你懂的| 日本福利片免费在线播放| 狠狠躁日日躁夜夜躁2| 蜜桃av在线网址观看| 97超碰在线视频观看| aaa222男人天堂| 一区二区中文字幕18| 中文字幕黄色av网址| 在线观看高清日韩av| av在线手机观看一区二区三区| 男人的坤插进女人的屁股里的视频| 97色 国产精品综合| 青青青青青青青青青青青青青草| 亚洲一区二区综合网| 国产一区精品在线观看免费| 91人妻人人做人人爽九色全集| 91人妻人澡人人爽人人精品| 自拍偷拍 中文字幕 日韩| 91jk麻豆美女丝袜诱惑| 美女吃鸡巴黑料破处自慰| 成人av影视一区在线观看| 日韩精品在线播放视频成年人| 日本少妇精品bbwbbw| 男人的坤插进女人的屁股里的视频| 大香蕉伊人免费在线| 午夜偷拍福利小视频| 久久精品国产9久久综合| 欧美综合一区二区三区| 都市激情校园春色av| 久久精品国产亚洲av视瓶| 欧美亚洲国产校园春色| 熟女免费在线观看视频 | 韩国美女主播福利视频| av精选一区二区久久| 99riav国产尤物蜜臀精品| 精品国产日韩一区三区| 成人黄色大片免费网站| 天天大香蕉一区二区三区| 97午夜精品理论片在线| 国产91精品久久久久高潮| 精品午夜国产福利观看| 丁香激情五月天综合网| 国产绿帽人妻精品系列| 婷婷色综合久久五月天| 中文字幕看日韩精品视频| 国产在线观看一区二区不卡| 国产在线视频国产资源| 日韩欧美在线一区二区在线| 日本大鸡巴乱伦肏屄网| 一区二区三区精品视频| 9797人人妻人人澡| 人妻熟妇丰满不伦一区二区三区| 天天日天天透天天操| 五月婷婷综合久久久| 国产国语露脸在线视频播放| 亚洲图片,自拍偷拍网| 极品国模sm镣铐调教| 五月天亚洲精品综合网| 免费在线观看视频色播| 天天操天天日天天啪| 欧美大黑硬鸡巴操骚肥湿逼| 国产超碰人人爽人人做夜色资源| 97色婷婷久久99国产视频| 人妻夜夜爽av性色大片| 女人样男人用大鸡巴操她的逼逼| 国产精品自拍亚洲春色| 亚洲图片,自拍偷拍| 91jk麻豆美女丝袜诱惑| 免费av在线中文字幕| 国自产拍偷拍福利精品免费观看| 午夜国产福利视频一区二区| 91精品午夜呻吟xxxx| 青青草青青草成人免费公开| 久久三级片一区二区毛片| 五月天亚洲精品综合网| 可以免费看啪啪啪的网站| av国产在线观看网站| 国产黄色大片在线免费观看| 中文字幕av一区二区三区高| 亚洲av好看xx站| 国产高清免费在线视频| 国内精品视频久久久久| 亚洲天堂欧美中文字幕| 黄色中文字幕在线观看| www国产亚洲天堂| 1717精品视频在线观看| 免费直接观看的麻豆黄色| 干 白虎 少妇 嫩 逼 视频| 97超碰在线come| 亚洲国内自拍愉拍影音先锋| 掀开奶罩边吃边摸下娇喘视频| 99精产国品一二三产区网站| 久久亚洲日本精品视频| 99久久精品免费看蜜桃的推荐词 | 日本老熟妇色狠狠一区| 精品欧美一亚洲精品午夜| 青青草手机视频在线观看| 国产又大又粗又硬又爽视频| 狠狠躁日日躁夜夜躁2| 99久久香蕉国产线看| 91在线视频只有精品| 亚洲中文字幕av在线播放| 最新亚洲成人黄色片| 青青草成人免费电影| 亚洲国产精品日日夜夜| 免费在线观看视频色播| 青青草成人免费电影| 天天日天天日天天日天天干| 国产精品久久久久白浆| 日韩破处精品在线观看| 亚洲,自拍,中文,另类| av网站资源在线观看| 精品无人区高清免费看| 国产在线免播放器不卡| 日韩加勒比东京热二区 | 人妻熟女一区二区aⅴ佐佐木明希| 欧美色一区二区三区在线观看| 人妻天天爽夜夜爽麻豆av| 欧美最猛黑人xxxx黑人猛交文| www国产亚洲天堂| 瑟瑟的网站在线观看| 免费av区在线观看| 成人免费视频国产免费麻豆下| 国产在线观看网站资源| 欧美美女视频在线免费看| av鲁丝一区鲁丝二区鲁丝四区| 国产成人午夜精品视频| 亚洲男人天堂111117av| 狠狠操 在线视频 轻轻草 | 亚洲永久av午夜福利| 青青青青青青青青草青青| 中国熟妇丰满大乳大屁股 | 99,九九,久久精品| 青青草青青草成人免费公开| 极品人妻vide0sss人妻| 妍强被迫伦姧惨叫123| 国产免费一级高清淫日本片| 欧美图色 亚洲图色| 久久躁夜夜躁日日躁狠狠躁| 99久在线精品99re8热视频| 黄片免费观看久久av| 国产福利中文字幕导航| 性感丝袜美女诱惑大鸡吧| 女人被男人阳具抽插的呻吟视频| 超碰超碰超碰超碰超碰情侣| 天天操天天操天天干天天| 黄色中文字幕在线观看| 女人看了很爽的一级女毛片| 午夜精品不卡视频在线观看| 98资源站精品视频在线观看| 天天色天天情天天透| 欧美熟妇亚洲中文不卡少妇 | 欧美av色香蕉一区二区小说| 办公室被吃奶好爽在线观看视频| 精品午夜国产福利观看| 男人天堂在线免费观看| 在线看片1024你懂得| 91久久精品视频91| 97超碰在线come| 亚洲国产aⅴ成人精品无吗| 91 chinese 在线播放| 青青草青青草成人免费公开| 国产精品自拍亚洲春色| 在线观看高清日韩av| 日本系列变态另类一区二区三区| 天天日天天透天天操| 老男人久久青草av高清| 中文字幕一区三区二区国产黄色| 丰满人妻被猛烈进入中文字幕四川| 欧美日韩综合在线免费观看| 天天睡天天摸天天添天天日天天射| 思思91精品国产综合在线| 办公室被吃奶好爽在线观看视频| 欧美中文字幕综合在线| 蜜桃视频18在线观看| 看男破处女人逼黄色片观看| 超碰在线97人人草| 蜜桃成人av电影网站| 日本免费啪啪啪啪啪啪啪啪啪啪| 中文字幕不卡av在线播放| 成年大片40分钟免费视频播放| 极品人妻vide0sss人妻| 欧美精品综合第一页| 三级三级三级日本99| 最大最全av中文字幕网| 免费成人中文字幕电影| 超碰人人澡人人碰人人| 17c在线观看视频国产aa| 青娱乐精品视频在线免费观看| 国产黑色丝袜视频在线观看下| 高清日本wwwcom| 亚洲中文字幕有码电影| 青青操国产精品视频在线| 国产高清在线免费视频| 久久性视频不卡网站| 日本高清插阴视频免费 | 亚洲欧洲自拍他拍av| 少妇高潮精品一区二区| 亚洲性趣老熟妇高清| 美女的逼让男人桶的视频| 蜜桃一区二区17c| 91久色porny视频在线| 韩国美女主播福利视频| 视频在线播放一区二区| 自拍偷拍 中文字幕 日韩 | 大香蕉人妻少妇av| 国产又粗又猛又爽又色视频| 99久久精品美女高潮喷水| 五月婷婷丁香花激情网| av 在线 麻豆| 超碰超碰超碰超碰超碰超| 久草免费资源视频在线观看| 天天日天天透天天操| 亚洲国产精品国自产拍av在线| 国产精品亚洲综合视频| 欧美激情在线观看新地址| 亚洲国产精品日日夜夜| 在线人妻视频网站免费| 欧美福利专区一区二区三区| 51日日夜夜精品视频| 日韩毛片综合在线观看网站| 人人妻人人妻人人妻精品| 亚洲国产中文字幕在线视频| 国产无遮挡精品视频观看| av国产在线观看网站| 老鸭窝在线观看免费观看高清版 | 一区二区三区国产精选在线播放| 麻豆精品午夜福利在线| 亚洲欧美在线x视频| 美女主播大奶子黄瓜插逼| 欧美综合一二区在线| 91福利国产成人精品| 成人福利电影免费网址| 97国产在线精品观看| 在线手机免费观看视频| 港台经典一级成人免费av| 亚洲图片,自拍偷拍网| 成人黄色大全在线观看| 丰满的女教师bd视频| 国产精品爽黄69天堂ai蜜乳| 可以直接在线观看的一区| 日韩毛片基地免费看| 亚洲国产欧美一区二区三区久久| 女人张开双腿让男人捅视频| 精品少妇人妻av免费久久胖妇| 亚洲精品乱码久久观看网| 丝袜制服 亚洲 国产 91| av网站在线免费浏览| 91精品在线播放hd| 乱一区二区三区在线播放| 手机在线免费视频一区二区三区| 干 白虎 少妇 嫩 逼 视频| 午夜在线看1000集| 干风骚美女av在线| 欧美一区,二区三区高清视频| 日韩av中文字幕乱码| x8x8免费在线观看视频| 黄色av免费下载软件| 日本日本熟妇中文在线视频| www国产精品久久久久久| 91精品午夜呻吟xxxx| 啪啪啪免费亚洲精品网站| 在线观看av久久久| 亚洲主要位于五带中的什么带?| 国产综合av一区二区| 免费观看视频一区,二区,三区| 欧美在线观看一级一区二区| 国产成人啪精品视频免费 | 妍强被迫伦姧惨叫123| 亚洲男人天堂111117av| 国产成人一区二区三区久| suv精品一区二区6| 蜜臀 av一区二区| 大香蕉伊人免费在线| 国产伦精品一区二区黑人| 人人玩精品人妻少妇性性色| 182tv在线福利视频| 香蕉久久av一区二区三区四区 | 欧美熟妇搡bbbb水蜜桃| 日韩精选高清大片在线观看| 农村女人91熟女熟妇| 美女诱惑福利在线视频| 欧美亚洲校园春色另类| 三级三级三级日本99| 欧美激情在线观看新地址| 中字av在线一区二区中字| 性色av成年在线观看| 日本熟妇wxw日本人妻| 欧美一区,二区三区高清视频| 亚洲永久av午夜福利| 国产在线观看网站资源| 欧美成人a v在线| 青青草成人免费电影| 熟女人妻人妻のhd| 亚洲综合另类小说色区色噜噜,| 亚洲激情视频免费在线| 在线观看小视频国产| 搡四十路e五十路熟女av| 青青视频青青成人免费| 色综合久久加勒比高清剧情| 欧美激情性做爰视频| 日韩avapp在线| 在线观看国产精品123| 美女诱惑福利在线视频| 97国产婷婷在线观看| 一区二区三区在线中国| 丝袜美图一区二区三区| 天天干天天日天天超| 天天爱天天日天天干天天做| 老鸭窝在线观看免费观看高清版| 亚洲欧洲自拍他拍av| 玖玖玖精品视频在线观看| 国产在线免播放器不卡| 日本性少妇xxxx| 亚洲欧美动漫卡通 另类| 国产福利中文字幕导航| 公一区二区三区高清99| 欧美一级操逼啊啊啊哦哦哦| 自拍偷拍 中文字幕 日韩| 丝袜美图一区二区三区| 熟女人妻av中文字幕| 两个人午夜免费看视频| 天天色天天爱天天舔| 国产av人人夜夜澡人人爽下载| 91久久香蕉国产熟女| 午夜老司机福利一二三区| 一区二区三区国产欧美日韩| 日本日本熟妇中文在线视频| 午夜福利久久久国产视频| 大肉大捧一进一出免费视频网址| 亚洲免费淫网站在线观看| 精精品久久久久久琪琪| 久久三级片一区二区毛片| 99精品国产自在现线观看| 久久久久18精品国产乱码78m| 婷婷综合尤物精品国产| 瑟瑟的网站在线观看| 日本老太婆老熟妇av| 白峰美羽在线观看av| 国产又色又爽又黄又免费的小说| 在线观看高清日韩av| 无套内谢少妇高潮毛片免费看| 伦人伦xxxx国语对白| av网站在线免费浏览| 欧美 日韩 中文 字幕| 色片免费在线观看喷水| 4个黑人操素人视频网站精品91| 国产精品福利免费视频不卡| 天天舔天天做天天爱| 国产一级二级三级亚洲| 欧美日韩精品久久一区二区三区| 一区二区中文字幕18| 日韩中文字幕免费大片| 国自产拍偷拍福利精品免费观看 | 亚洲va欧美va人人爽午夜| 国产欧美精品va在线观看| 人人妻人人妻人人妻精品| av网址在线观看日韩| 久久久久久久久久久蜜桃| 日韩毛片综合在线观看网站 | 日韩成人综艺在线播放| 国内精品久久久久精品爽爽| 亚洲妇熟xxxx妇色黄网站| 中文字幕av网址大全| 91老熟女连续高潮对白| 国产传媒中文字幕在线| 小少妇被大鸡巴操手机在播放| 国产午夜在线免费视频| 精品熟女后入一区二区三区| 97精品国产高清在线| 少妇高潮尖叫久久久久| 麻豆一区二区大豆行情| 白峰美羽在线观看av| 日韩avapp在线| 亚洲人成青青操免费观看| 亚洲中文字幕在线成人| 干风骚美女av在线| 少妇的激情夜夜爽爽爽爽爽| 国产a v一区二区三区香蕉| 97精品在线观看视频| 少妇内射的视频一区二区| 91福利精品一区二区| 国产av大全网站天堂| 国产精品自拍亚洲春色| 偷拍亚洲另类图片视频| 欧美,偷拍,另类,综合| 五月激情丁香久久亚洲| 成人18禁视频网站在线看| 中文字幕精品av在线观看| 蜜桃视频18在线观看| 久久精品亚洲国产| 成人a毛片久久免费播放| 白峰美羽在线观看av| 在线视频无码理论片| 日本中文字幕人妻一区二区| 国产伦精品一区二区黑人| 亚洲天堂都市激情av| 少妇的激情夜夜爽爽爽爽爽| 狠狠操 在线视频 轻轻草| 国产老熟女高潮在线播放| 91精品人妻中文字幕| mm在线视频观看免费观看| 亚洲欧美另类激情综合区动漫| 久久91精品国产91久久分享| 99精品热视频在线观看| 大香蕉人妻少妇av| 中文字幕 日韩在线播放| 日韩性爱视频无码三级片| 久久精品国产9久久综合| 蜜桃成人av电影网站| 免费一级黄色片麻豆系列| 亚洲国产久久久久久| 亚洲美女乱1区2区3区| 一区二区三区欧美高清| 国产熟妇一区二区三区av| 少妇美女大极品内射| 程嘉美日本全部三级| 91亚洲国产成人久久| 美女吃鸡巴黑料破处自慰| 青青操在线视频精品| 91麻豆精品国产乱码久久久久久| 天天射天天日天天干天天舔| 亚洲永久av午夜福利| 国产情侣激情在线对白| 日本性感黑丝美女一区二区| 大奶子美女免费操逼视频| 亚洲成av中文字幕| 青娱乐精品视频在线免费观看| 亚洲日本欧洲一区二区| 中字av在线一区二区中字| 日韩成人在线电影,| 色一伊人区二区亚洲最大| 亚洲综合欧美熟一区| 综合另类小说欧美另类图片| 日本一区二区不卡电影| 亚洲va欧美va人人爽午夜| 婷婷视频在线观看一区的| 成人福利电影免费网址| 在线视频一视频二视频三| 浪荡人妻共32部分黑人| 好男人资源在线视频观看社区| av一区二区二十四小时| av乱亚洲一区二区三区| 丰满的女教师bd视频| 国产精品亚洲综合av| 亚洲免费国产在线日韩| 久久综合色——久久综合色88| 91久色porny视频在线| 久久这里精品视频3| 隔壁放荡人妻bd完整版| 亚洲自拍偷拍视频二区| 亚洲欧美日韩不卡人妻中文字幕| 亚洲欧美另类专区第一页| 天天插天天爱天天日| 天天日天天日天天日天天干| 国产伦精品一区二区黑人| 国模视频写真一区二区| 登录国产黄色一区二区三区| 日本大鸡巴乱伦肏屄网| 日本女护士久久精品| 天天碰天天摸人人看| Av资源站中文字幕| 性感的人妻在线观看| 神乃麻美三级在线观看视频| 日韩欧美一区久久久久久| 成全视频免费观看在线下载| 91精品国产国语自拈产在| 国自产拍偷拍福利精品免费观看 | 日本片免费a在线观看| 人妻精品久久久久中文字幕19| 天天日天天看天天摸| 人人妻人人妻人人妻精品| 亚洲精品专区一区二区| 制服丝袜诱惑综合网| 久久三级片一区二区毛片| 免费观看黄色韩日av| 最新亚洲成人黄色片| 天天操天天操天天干天天| 日韩高清av一区二区三区| 日本 久久久 香蕉| 日韩无码成人电影一区二区| 五月婷婷综合久久久| av手机在线免费播放| 欧美成人a v在线| 亚洲国产欧美一区二区三区久久| 精精品久久久久久琪琪| 日本片免费a在线观看| 超碰超碰超碰超碰超碰超| 长久久久久一区二区高清| 少妇内射的视频一区二区| 91人妻人人做人人爽九色全集| 98久久久久98久久久久| 91大神视频在线观看视频| 日本a爱视频二区三区| 国产免费av不卡免费| 国产国语露脸在线视频播放| 超碰人妻中文字幕在线| 在线理论国产高清在线| 亚洲天堂欧美中文字幕| 欧美大长腿美女抽插网站| 国产美女视频在线播放| 精品午夜国产福利观看| 亚洲欧美一区二区精华液| av一区二区三区蜜臀| 亚洲一区二区三区免费| 日韩资源在线中文字幕| 亚洲 网友 在线 观看| 欧美亚洲国产校园春色 | 老师让我插进去69AV| 国产在线观看网站资源| 人妻少妇偷人视频一| m3u8在线播放91| 国产av人人夜夜澡人人爽下载| 色一伊人区二区亚洲最大| 不卡精品国产_亚洲人成在线| 色片网站在线看亚洲精品| 人人玩精品人妻少妇性性色| 搡四十路e五十路熟女av| 在线视频无码理论片| 国产乱子伦一区=区三区| 在线视频一视频二视频三| 亚洲av综合久久久久久| 天天日天天看天天摸| 成人黄色大全在线观看| 日本vvvv操操操| 91麻豆精品一二三区在线成人| 天天操天天色天天天| 极品国模sm镣铐调教| 日韩中文字幕乱码一区| 国产中文字幕在线免费播放| 搡四十路e五十路熟女av| 亚洲av福利片久久久久| 日本少妇人妻久久中文| 男女精品久久久久久久久久| 国产精品黄色自拍视频| 国产麻豆在线av| 91精彩刺激对白露脸偷拍| mm在线视频观看免费观看| 美国黄色aa特黄色视拼| 人人妻人人澡人人爽电台app| 污污污视频在线观看91| 亚洲天堂一二三四在线播放| 国产精品午夜在线观看| heyzo久久综合色88| 男人爽爽女人的视频一区二区三区| 丝袜美图一区二区三区| 亚洲图片一区偷拍自拍| 天天扣天天日天天摸| 亚洲天堂男人的天堂av| 精品99久久久久久www| 亚洲国产日韩欧美在线观看| 国产绿帽人妻精品系列| 日韩毛片综合在线观看网站| 成人福利电影免费网址| 在线播放 国产 真实| av在线手机观看一区二区三区| 可以免费看的黄页视频| 亚洲中文有码一区二区| 精品一区二区三区大全| 日韩毛片综合在线观看网站| 91精品国产国语自拈产在| 少妇人妻中文字幕专区视频| 欧美黑人性色黄在线视频| 日韩破处精品在线观看| 亚洲天堂av插插插| 97超碰在线come| 日本老熟妇色狠狠一区| 东京热av在线播放| 欧洲野外激情性视频| 日本 久久久 香蕉| 18人妻人碰人人做人人爽| 欧美精品综合第一页| 欧美 日韩 中文 字幕| 人妻熟妇丰满不伦一区二区三区| av 在线 麻豆| 在线视频 国产 日韩 欧美| 日本五十路六十路中出| 成全视频免费观看在线下载| 精品一区二区三区大全| 精品视频在线观看久久| 少妇内射的视频一区二区| 女人样男人用大鸡巴操她的逼逼| 国产喷水在线免费观看| 伊人青青青在线观看| 亚洲美女乱1区2区3区| 天天大香蕉一区二区三区| 欧美日韩综合在线免费观看| 成人免费视频国产免费麻豆下| 亚洲欧美日韩偷窥自拍| 成人大片免费看45分钟| 欧美一区二区蜜桃视频| Av资源站中文字幕| 色视频免费在线观看视频| 国产又粗又猛又爽又色视频| 嗯嗯嗯啊啊啊不要好爽视频| 91免费观看国产精品| 国产黑色丝袜视频在线观看下| 黄色中文字幕在线观看| 丰满人妻被猛烈进入中文字幕四川| 极品国模sm镣铐调教| 亚洲国产日韩欧美高清片vr| av鲁丝一区鲁丝二区鲁丝四区| 午夜福利免费福利视频| 91精品午夜呻吟xxxx| 男女啪啪啪网站入口| 男人的坤插进女人的屁股里的视频| 男人天堂在线免费观看| 筱田优在线播放一区二区三区| 特黄特猛aaaaaaaaa片| 99久久精品久久久久久清纯| 午夜男女激情福利视频| 国产精品啊啊啊不要在线观看 | 天天大香蕉一区二区三区| 天天爱天天日天天干天天做| 男生日女生逼的视频| 变态另类97人妻av| 天天色天天情天天透| 丰满的女教师bd视频| 国产av大全网站天堂| 亚洲女同性同志熟女女同| 欧洲日本亚洲一区二区| 一区二区三区精品视频| 播放灌醉水嫩大学生国内精品| 蜜臀 av一区二区| 午夜精选视频在线观看| 日韩破处精品在线观看| 91久久香蕉国产熟女| 在线小视频,你懂的| 亚洲中文有码一区二区| 亚洲中文字幕在线成人| 亚洲av永久久久久久久蜜桃| 欧美激情在线观看一区| 亚洲av好看xx站| 97久久精品熟女超碰| 色婷婷久久久久av| 成人午夜伦理在线观看| 91在线视频只有精品| 国产成人一区二区三区久| 少妇的激情夜夜爽爽爽爽爽| 国自产拍偷拍福利精品免费观看| 亚洲精品一区二区三区新线路| 99精品国产免费久久久久久| 亚洲国产日韩欧美在线观看 | 午夜性色福利视频自拍偷拍| 国产美女遭高潮免费视频| 天天扣天天日天天摸| 超碰人人澡人人碰人人| 亚洲国产日韩欧美在线观看| 欧美久久久久亚洲综合| 77777蜜臀精品久久综合| 亚洲一区二区三区免费| 成人熟女一区二区三区| 丝袜美图一区二区三区| 美女被弄高潮喷水91视频9| 狠狠躁日日躁夜夜躁视频| 96h久久国产激情| 成人18禁视频网站在线看| 操日本裸体美女骚逼| 欧美激情在线观看新地址| 国产高清免费在线视频| 男人的坤插进女人的屁股里的视频| 午夜性色福利视频自拍偷拍| 韩国一区二区三区在线观看| 亚洲av好看xx站| 可以在线观看的黄色网页| 亚洲精品**不卡在线播he| 青青青青青青青青草青青| 色婷婷亚洲久久97成人| 成人福利电影免费网址| 啪啪啪免费亚洲精品网站| 中文字幕看日韩精品视频 | 操女人下阴黄色一级视频| 久久三级片一区二区毛片| 亚洲美女乱1区2区3区 | 日本av毛片在线播放| 1777中文字幕字幕在线播放| 国自产拍偷拍福利精品免费观看| 日韩欧美亚洲一区第一| 日韩欧美在线不卡一区二区三区| 色就色欧美亚洲αv| 久久久亚洲精品熟妇少妇| 青青操成人免费在线视频| 四川操bb操bb操b| 国产原创成人av剧情在线播放| 99久久精品美女高潮喷水| 亚洲av永久久久久久久蜜桃 | 99久在线精品99re8热视频 | 亚洲日本一区二区嫩草| 精品99久久久久久www| 日本大鸡巴乱伦肏屄网| 一级黄色片美女吃春满| 自拍分享国产亚洲欧美| 久久精品国产亚洲av视瓶| 久久性视频不卡网站| 色视频免费在线观看视频| 亚洲一区 成人在线| 亚洲一区二区视频在线免费观看| 91人妻人澡人人爽人人精品| 亚洲精品久久久久久久久久蜜桃| 亚洲va欧美va人人爽午夜| 日本av都是真做吗|