精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

四種方法將 Docker Registry 遷移至 Harbor

系統 Linux
要如何將 docker registry 中的鏡像遷移至 harbor?本文介紹了四種具體的思路和想法供大家參考。

[[425177]]

Registry

Docker Distribution

Docker Distribution 是第一個是實現了打包、發布、存儲和鏡像分發的工具,起到 docker registry 的作用。(目前 Distribution 已經捐贈給了 CNCF)。其中 Docker Distribution 中的 spec 規范后來也就成為了 OCI distribution-spec 規范。可以認為 Docker Distribution 實現了大部分 OCI 鏡像分發的規范,二者在很大程度上也是兼容的。

OCI 的指導思想時先有工業界的實踐,再將這些實踐總結成技術規范,因此盡管 OCI 的 distribution-spec 規范還沒有正式發布(目前版本是 v1.0.0-rc1),但以 Docker Distribution 作為基礎的鏡像倉庫已經成為普遍采用的方案,docker registry http api v2 也就成為了事實上的標準。

Harbor

harbor 也是采用了 Docker Distribution (docker registry)作為后端鏡像存儲服務,在 harbor 2.0 之前的版本,鏡像相關的功能大部分是由 Docker Distribution 來處理,鏡像和 OCI 等制品的元數據是 harbor 組件從 docker registry 中提取出來的;harbor 在 2.0 版本之后,鏡像等 OCI 制品相關的元數據由 harbor 自己來維護,而且元數據是在 PUSH 這些制品時寫入到 harbor 的數據庫中的。

正因得益于此,harbor 不再僅僅是個用來存儲和管理鏡像的服務,而一個云原生倉庫服務,能夠存儲和管理符合 OCI 規范的 Helm Chart、CNAB、OPA Bundle 等多種 Artifact。

Docker Registry to Harbor

回到本文主題:如何將 docker registry 中的鏡像遷移至 harbor?

假如內網環境中有兩臺機器,一臺機器上運行著 docker registry,域名假設為 registry.k8s.li 。另一臺機器運行著 harbor,假設域名為 harbor.k8s.li。現在 docker registry 中存放了五千個鏡像。harbor 是剛剛部署的,里面還沒有鏡像。在磁盤和網絡沒有限制的情況下,如何高效地將 docker registry 中的鏡像遷移到 harbor 中呢?

獲取 Registry 所有鏡像的列表

首先在遷移之前我們要獲取一份 docker registry 中鏡像的列表,這樣我們才能保證遷移后沒有鏡像丟失。根據《 深入淺出容器鏡像的一生》一文中提到的 registry 的存儲目錄結構。在 registry 存儲目錄中,每個鏡像的 tag 都是由 current/index 這個文件指向該 tag 鏡像的 manifests 文件的,由此我們可以通過遍歷 registry 存儲目錄中 current/index 文件的方式來得到所有鏡像的 tag,由此得到該 registry 中所有鏡像的列表。注意,這樣只能得到有 tag 的鏡像,其他沒 tag 的鏡像無法獲取到。

可通過如下命令在 registry 存儲目錄下獲取鏡像列表:

Harbor 創建 project

對于新部署的 harbor 來說,上面只會有一個默認的 library 的 project,需要手動在 harbor 上創建 docker registry 中對應的 project。docker registry 中鏡像的 project 就是 registry 存儲目錄中 repositories 下的目錄名。

得到了鏡像列表,以及在 harbor 上完成了對應 project 的創建,我們就可以做正式的遷移工作啦。根據不同的場景,可使用如下幾種方案:

方案一:docker retag

方案一可能是大多數人首先想到的辦法,也是最簡單粗暴的方法。就是在一臺機器上使用 docker pull 下 docker registry 中的所有鏡像,然后再 docker retag 一下,再 docker push 到 harbor 中。

如果之前看過我寫的《深入淺出容器鏡像的一生》和 《鏡像搬運工 skopeo 初體驗》,并且已經在日常生活中使用 skopeo ,一定會覺得這并不是個聰明的方案,因為 docker pull –> docker tag –> docker pull 的過程中會對鏡像的 layer 進行解壓縮。對于只是將鏡像從一個 registry 復制到另一個 registry 來說,這些 docker 在這些過程中做了很多無用功。詳細的原理可以參考上述兩篇文章,在此不再贅述。

為了追求高效,我們不使用 docker retag 方案,下面看一下方案二:

方案二:skopeo

在《鏡像搬運工 skopeo 初體驗》一文中介紹過可以使用 skopeo copy 直接從一個 registry 中復制鏡像原始 blobs 到另一個 registry 中,在此期間不會涉及鏡像 layer 解壓縮操作。在性能和耗時兩個角度上,都比使用 docker 的方式高效很多。

  •  使用 skopeo copy

  •  使用 skopeo sync

無論是 docker 和 skopeo 本質上都是通過 registry 的 HTTP API 下載和上傳鏡像的,在這過程中還是多了不少 HTTP 請求的,如果走的是 HTTPS 的話,還涉及了 HTTPS 加密和解密的過程,這期間有很多無用功。那么還有沒有更好的辦法?

方案三:遷移存儲目錄

文章開頭提到 harbor 的后端鏡像存儲也是使用的 docker registry,對于一個 registry 來說,只要是使用的是 Docker Distribution V2 ,它后端的存儲目錄結構都是一模一樣的。那為什么不直接將 registry 的存儲目錄打包復制并解壓到 harbor 的 registry 存儲目錄?這樣又能保證所有的鏡像都遷移過去,不會落下任何一個。

對于 harbor 1.x 版本來講,將 docker registry 的存儲目錄直接遷移到 harbor 的 registry 存儲目錄,然后刪除 harbor 的 redis 數據(因為 harbor 的 redis 緩存了鏡像的元數據信息),重啟 harbor 就好了。重啟 harbor 之后,harbor 會調用后端的 registry 去提取鏡像的元數據信息并存儲到 redis 中。這樣就完成了遷移的工作。

在 docker registry 機器上備份 registry 存儲目錄

備份完成之后將 docker.tar scp 到 harbor 機器上,然后在 harbor 機器上恢復 registry 存儲目錄

這樣遷移之后可能會遇到無法往 harbor push 鏡像的問題。因為 docker registry 容器內 registry 存儲目錄的所屬和所屬組為 root,而 harbor registry 容器內 registry 存儲目錄的所屬和所屬組為 10000:10000,二者權限并不相同,會導致 harbor 無法 push 鏡像。因此在遷移完成之后需要修改一下 harbor registry 目錄的所屬和所屬組。

方案四

對于 harbor 2.x 來講,由于 harbor 強化了 Artifact 的元數據管理能力,即元數據要在 push 或者 sync 到 harbor 時寫入到 harbor 自身的數據庫中。在 harbor 看來只要數據庫中沒有這個 Artifact 的 manifest 信息或者沒有這一層 layer 的信息,harbor 都會認為該 Artifact 或者 layer 不存在,返回 404 的錯誤。按照方案三直接而將 docker registry 存儲目錄解壓到 harbor 的 registry 存儲目錄的方法行不通的。因為是將鏡像解壓到 registry 存儲中的,雖然在 harbor 的 registry 容器看來是有鏡像的,但因為 harbor 的數據庫中沒有鏡像,harbor 就會認為沒有鏡像。那么現在看來只能通過方案二使用 skopeo 將鏡像一個一個地 push 到 harbor 中了。

但對于某些特定的場景下,不能像方案二那樣擁有一個 docker registry 的 HTTP 服務,只有一個 docker registry 的壓縮包,這如何將 docker registry 的存儲目錄中的鏡像遷移到 harbor 2.0 中呢?

在《鏡像搬運工 skopeo 初體驗》中提到過 skopeo 支持的鏡像格式有如下幾種:

需要注意的是,這幾種鏡像的名字,對應著鏡像存在的方式,不同存在的方式對鏡像的 layer 處理的方式也不一樣,比如 docker:// 這種方式是存在 registry 上的;docker-daemon: 是存在本地 docker pull 下來的;再比如 docker-archive 是通過 docker save 出來的鏡像;而 dir: 是鏡像以文件夾的形式保存的。同一個鏡像有這幾種存在的方式就像水有氣體、液體、固體一樣。可以這樣去理解,他們表述的都是同一個鏡像,只不過是存在的方式不一樣而已。

既然鏡像是存放在 registry 存儲目錄里的,那么使用 dir 的形式直接從文件系統讀取鏡像,理論上來講會比方案二要好一些。雖然 skopeo 支持 dir 格式的鏡像,但 skopeo 目前并不支持直接使用 registry 的存儲目錄,所以還是需要想辦法將 docker registry 存儲目錄里的每一個鏡像轉換成 skopeo dir 的形式。

skopeo dir

那么先來看一下 skopeo dir 是什么樣子的?

為了方便測試方案的可行性,先使用 skopeo 命令先從 docker hub 上拉取一個鏡像,并保存為 dir,命令如下:

使用 tree 命令查看一下 alpine 文件夾的目錄結構,如下:

從文件名和大小以及文件的內省我們可以判斷出,manifest 文件對應的就是鏡像的 manifests 文件;類型為 ASCII text 的文件正是鏡像的 image config 文件,里面包含著鏡像的元數據信息。而另一個 gzip compressed data 文件不就是經過 gzip 壓縮過的鏡像 layer 嘛。看一下 manifest 文件的內容也再次印證了這個結論:

  •  鏡像的 config 字段對應的正是 e50c909a8df2,而文件類型正是 image.v1+json 文本文件。
  •  鏡像的 layer 字段對應的也正是 4c0d98bf9879 而文件類型正是 .tar.gzip gzip 壓縮文件。

從 registry 存儲目錄中撈鏡像出來

接下來到本文的較為精彩的地方了。如何從 registry 存儲里“撈”鏡像出來,轉換成 skopeo 所支持的 dir 格式。

  •  首先要得到鏡像的 manifests 文件,從 manifests 文件中可以得到該鏡像的所有 blob 文件。例如對于 registry 存儲目錄中的 library/alpine:latest 鏡像來講,它在 registry 中是這樣存放的:

1.通過 repositories/library/alpine/_manifests/tags/latest/current/link 文件得到 alpine 鏡像 lasts 這個 tag 的 manifests 文件的 sha256 值,然后根據這個 sha256 值去 blobs 找到鏡像的 manifests 文件;

2.根據 current/link 文件中的 sha256 值在 blobs 目錄下找到與之對應的文件,blobs 目錄下對應的 manifests 文件為 blobs/sha256/39/39eda93d15866957feaee28f8fc5adb545276a64147445c64992ef69804dbf01/data;

3.使用正則匹配,過濾出 manifests 文件中的所有 sha256 值,這些 sha256 值就對應著 blobs 目錄下的 image config 文件和 image layer 文件;

4.根據 manifests 文件就可以得到 blobs 目錄中鏡像的所有 layer 和 image config 文件,然后將這些文件拼成一個 dir 格式的鏡像,在這里使用 cp 的方式將鏡像從 registry 存儲目錄里復制出來,過程如下:

最終得到的鏡像格式如下:

和上面的 skopeo copy 出來的 dir 文件夾對比一下,除了一個無關緊要的 version 文件,其他的都一摸一樣。

5.再優化一下,將步驟 4 中的 cp 操作修改成硬鏈接操作,能極大減少磁盤的 IO 操作。需要注意:硬鏈接文件不能跨分區,所以要和 registry 存儲目錄在同一個分區下才行。

然后使用 skopeo copy 或者 skopeo sync 將撈出來的鏡像 push 到 harbor

  •  使用 skopeo copy

  •  使用 skopeo sync 需要注意的是,skopeo sync 的方式是同步 project 級別的,鏡像的 name 和 tag 就對應的是目錄的名稱

實現腳本

其實修改一下 skopeo 的源碼應該也是可以無縫支持 registry 存儲目錄的。

對比

對比總結一下以上幾種方案:

  •  方案一:上手成本低,適用于鏡像數量比較多少,無需安裝 skopeo 的情況,缺點是性能較差;
  •  方案二:適用于兩個 registry 之間同步復制鏡像,如將 docker hub 中的一些公共鏡像復制到公司內網的鏡像倉庫中。
  •  方案三:適用于鏡像倉庫之間進行遷移,性能是所有方案里最好的,需要額外注意的是如果目的鏡像倉庫是 harbor 2.x,是無法使用這種方式的。
  •  方案四:是方案三的妥協版,為了適配 harbor 2.0 ,因為需要重新將鏡像 push 到 harbor ,所以性能上要比方案三差一些。 
責任編輯:龐桂玉 來源: 運維派
相關推薦

2021-12-22 10:45:56

Docker RegiHarborLinux

2022-09-02 14:29:01

JavaScrip數組屬性

2014-03-17 09:22:43

Linux命令

2009-02-25 09:52:14

類型轉換.NET 強制轉型

2023-02-03 08:47:20

職位招聘難題

2009-03-31 13:12:30

解析XMLJava

2011-06-22 15:21:08

XML

2020-08-10 00:30:55

備份密碼iPhone移動安全

2010-07-16 13:50:53

Perl哈希表

2021-03-10 10:13:39

爬蟲Python代碼

2016-06-28 10:19:31

云計算云安全

2009-11-23 15:57:51

PHP偽靜態

2016-12-06 08:43:28

LinuxPNGJPG

2009-09-17 16:55:58

C#組件設計

2011-08-29 17:32:50

Ubuntu

2010-08-26 14:18:25

DIV高度

2020-07-24 09:56:12

React開發數據

2010-03-18 17:57:37

Java XMLSoc

2014-02-28 10:50:24

Linux命令

2010-08-02 16:47:46

Flex
點贊
收藏

51CTO技術棧公眾號

内射一区二区三区| 手机免费av片| 成年人视频免费在线观看| 日本免费在线视频不卡一不卡二| 在线播放国产一区中文字幕剧情欧美| 日韩在线不卡一区| 国产丝袜在线观看视频| 日本一区二区三区视频视频| 亚洲一区制服诱惑| 91精品国产乱码在线观看| 日韩欧美中字| 日韩精品免费在线视频观看| 五月婷婷六月丁香激情| 国产精品原创| 亚洲猫色日本管| 欧洲国产精品| 成人午夜视频一区二区播放| 青青草97国产精品免费观看无弹窗版 | 国产三级精品在线| 动漫美女被爆操久久久| 这里只有精品免费视频| 亚洲国产免费| 久久综合伊人77777蜜臀| 女~淫辱の触手3d动漫| 中文字幕亚洲在线观看| 欧美久久一二三四区| 美女福利视频在线| 丁香花高清在线观看完整版| 亚洲欧洲性图库| 日本免费一区二区三区| 天天操天天操天天操| 国产久卡久卡久卡久卡视频精品| 国产精品久久久久影院日本| 中日韩黄色大片| 一区在线观看| 欧美黑人又粗大| 免费高清在线观看电视| 日韩精品首页| 怡红院精品视频| 久久久久久久久久久国产精品| 亚洲精品在线播放| 日韩午夜激情视频| 日韩欧美中文视频| www久久久| 欧美日韩国产成人在线免费| 网站一区二区三区| 播放一区二区| 欧美中文字幕一区二区三区 | 韩日成人影院| 日韩欧美中文在线| 黄色大片在线免费看| 黄色影院在线看| 夜夜揉揉日日人人青青一国产精品| 综合视频在线观看| 蜜桃视频在线观看www社区| 国产欧美日韩中文久久| 色噜噜狠狠一区二区三区| 欧美精品久久久久久久久久丰满| 久久一夜天堂av一区二区三区| 久久99九九| 欧美日韩在线精品一区二区三区激情综| 99re热视频这里只精品| 精品免费国产| 国产一二三区在线视频| 日本一区二区视频在线| 亚洲一卡二卡三卡| 老司机在线永久免费观看| 国产精品视频你懂的| 亚洲一卡二卡区| 最爽无遮挡行房视频在线| 一级做a爱片久久| 99国产精品白浆在线观看免费| h片在线观看| 黑人狂躁日本妞一区二区三区| 波多野结衣av一区二区全免费观看| 嗯~啊~轻一点视频日本在线观看| 亚洲成av人影院在线观看网| 免费在线观看毛片网站| 国产精品天堂蜜av在线播放 | 韩国中文免费在线视频| 中文字幕亚洲成人| 屁屁影院ccyy国产第一页| 操人在线观看| 91福利在线播放| 一级黄色大片儿| 老司机在线精品视频| 亚洲欧美日韩直播| 四虎精品免费视频| 一区二区国产在线观看| 国产福利视频一区二区| 99久久免费国产精精品| 91丨九色porny丨蝌蚪| 亚洲欧美日韩国产yyy| 欧洲黄色一区| 欧美中文字幕亚洲一区二区va在线 | 激情视频在线播放| 久久五月激情| 亚洲va久久久噜噜噜| 婷婷国产在线| 亚洲精品免费在线观看| 久久久久久久久久久99| 99国内精品久久久久| 日韩电视剧免费观看网站| 国产精品夜夜夜爽阿娇| 免播放器亚洲| 国产精品jizz视频| 91亚洲欧美| 都市激情亚洲色图| 人妻精油按摩bd高清中文字幕| 一区二区三区四区在线看| 久久91精品国产91久久久| 无码一区二区三区| 99re6这里只有精品视频在线观看| 亚洲免费精品视频| 成人国产二区| 亚洲国产精彩中文乱码av在线播放| 国产18无套直看片| 亚洲一区二区三区高清不卡| 亚洲bt欧美bt日本bt| 国产黄在线看| 色综合视频一区二区三区高清| 能看毛片的网站| 欧美xxxx中国| 国产精品视频免费在线观看| 全部免费毛片在线播放网站| 亚洲午夜成aⅴ人片| www.污网站| 色综合咪咪久久网| 国产精品 欧美在线| 四虎影视精品成人| 欧美日韩另类在线| 亚洲精品国产成人av在线| 欧美激情第8页| 亚洲一区精品电影| 黄色的网站在线观看| 欧美日韩激情在线| 国产欧美小视频| 老司机午夜精品| 日韩伦理一区二区三区av在线| 性欧美18xxxhd| 日韩精品在线电影| wwwwww国产| 久久嫩草精品久久久久| 播放灌醉水嫩大学生国内精品| youjizz亚洲| 久久久久亚洲精品成人网小说| 性色av蜜臀av| 亚洲影院免费观看| 亚洲女则毛耸耸bbw| 一区二区亚洲| 精品九九九九| 亚洲人体视频| 一区二区av在线| 男操女视频网站| 中文字幕不卡一区| 爽爽爽在线观看| 欧美.www| 精品国产乱码久久久久久郑州公司| 丁香高清在线观看完整电影视频| 亚洲成色777777女色窝| 丰满少妇乱子伦精品看片| 99久久99久久久精品齐齐| 9久久9毛片又大又硬又粗| 日韩精选在线| 国产成人综合亚洲| 日本激情在线观看| 日韩午夜激情视频| 成年人午夜视频| 国产婷婷一区二区| mm131国产精品| 欧美在线三级| 精品乱码一区| 欧美xnxx| 欧美理论电影在线播放| 色呦呦中文字幕| 91国产丝袜在线播放| 三上悠亚作品在线观看| 风流少妇一区二区| 日av中文字幕| 五月久久久综合一区二区小说| 99久久综合狠狠综合久久止 | 国产精品日韩专区| 香蕉成人app免费看片| 国产午夜精品久久久| 亚洲一区精品在线观看| 亚洲一区二区三区四区在线免费观看| 精品黑人一区二区三区观看时间| 欧美a级一区二区| 国产性生活免费视频| 妖精视频一区二区三区| 成人欧美一区二区三区黑人孕妇 | 久久精品亚洲欧美日韩精品中文字幕| 99久久99久久精品国产片| 久久精品女人天堂av免费观看 | 1024手机在线视频| 久久亚洲一级片| 日日夜夜精品视频免费观看 | 亚洲天堂网2018| 亚洲一区二区伦理| 成年在线观看视频| 教室别恋欧美无删减版| 国产高清不卡av| 祥仔av免费一区二区三区四区| 国内精品视频久久| 久操视频在线观看| 亚洲天堂av综合网| 色综合久久久久久| 欧美一区二区三区在线视频| 成年人av网站| 亚洲成国产人片在线观看| 91ts人妖另类精品系列| 久久先锋影音av| 在线中文字日产幕| 国产一区二区91| 五月婷婷之综合激情| 国产精品资源| 国产精品www在线观看| 婷婷成人基地| 亚洲精品不卡| 蜜桃精品噜噜噜成人av| 精品久久精品久久| 91综合久久爱com| 96国产粉嫩美女| 精品国产黄a∨片高清在线| 日本久久久久久久| 国产福利电影在线播放| 久久久久成人网| av在线免费网站| 久久久精品电影| 在线观看免费版| 亚洲欧美999| 日本福利片在线| 日韩精品中文字幕视频在线| 日本高清视频www| 欧美成人激情免费网| www.激情五月| 日韩三级av在线播放| 精品人妻一区二区三区浪潮在线| 欧美男人的天堂一二区| 一级特黄色大片| 欧美人成免费网站| 国产一区二区三区中文字幕| 欧美人xxxx| 国产免费一区二区三区免费视频| 欧美日韩国产一级片| 中文资源在线播放| 欧美日韩高清一区二区三区| 在线免费av网| 在线不卡欧美精品一区二区三区| 一级片在线免费观看视频| 欧美精品一二三| av老司机久久| 日韩精品一区二区三区视频 | 欧美日韩一级黄色片| 色噜噜久久综合| 中文字幕免费播放| 欧美一区二区三区人| www.色亚洲| 亚洲国产精品久久| 可以在线观看的av网站| 在线观看欧美日韩| 99热国产在线中文| 97婷婷大伊香蕉精品视频| 欧美黑人疯狂性受xxxxx野外| 国产精品9999| 9999精品| 久久免费一区| 青青草91久久久久久久久| 中文字幕欧美日韩一区二区三区| 欧美.www| 日韩免费毛片视频| 久久超级碰视频| 超碰caoprom| 久久色.com| 婷婷伊人五月天| 精品欧美一区二区三区| 自拍偷拍色综合| 欧美一区二区三级| 天天av综合网| 精品国产区一区二区三区在线观看| 羞羞的视频在线观看| 91精品国产网站| 精品美女一区| 狠狠综合久久av| 欧美成人直播| 日本十八禁视频无遮挡| 奇米一区二区三区| www.四虎精品| 欧美韩日一区二区三区| 不卡的免费av| 欧美性色黄大片手机版| 肥臀熟女一区二区三区| 亚洲视频一区二区三区| 麻豆av在线播放| 成人av番号网| 亚洲人成网www| 国产精品一二三在线观看| 欧美亚洲视频| 国产女主播在线播放| 欧美激情中文字幕一区二区| 国产精品99精品| 欧美精品乱码久久久久久| 免费在线性爱视频| 欧美激情视频一区二区| 成人久久网站| 免费久久久一本精品久久区| 欧美日韩国产高清| www.日本一区| 国产午夜亚洲精品不卡| 日本一级黄色大片| 91麻豆精品国产综合久久久久久| 精品视频一二区| 亚洲18私人小影院| 麻豆一区在线| 在线观看免费91| 日韩av一二三| 少妇户外露出[11p]| 一区二区免费看| 国产男女裸体做爰爽爽| 色琪琪综合男人的天堂aⅴ视频| 色综合桃花网| 国产精品视频在线免费观看| 欧美一区免费| 毛片毛片毛片毛| 中文无字幕一区二区三区| 久草视频一区二区| 日韩精品一区二区三区第95| 亚洲国产精品精华素| 91探花福利精品国产自产在线| 成人午夜国产| 亚洲激情在线观看视频| 久久久久免费观看| 久久99国产综合精品免费| 亚洲国产精品久久久久秋霞蜜臀 | 秋霞午夜理伦电影在线观看| 国产成人综合av| 欧美日韩一二三四| 天天爽天天爽夜夜爽| 国产三级欧美三级| 中文资源在线播放| 自拍偷拍亚洲精品| 欧美成人福利| 综合一区中文字幕| 精品制服美女丁香| 中文字幕在线有码| 日韩欧美国产一区二区在线播放| 日本在线视频www鲁啊鲁| 99九九视频| 亚洲黑丝一区二区| 精品中文字幕在线播放 | 九九久久国产精品| 亚洲高清在线一区| 亚洲中文字幕无码av永久| 不卡av在线免费观看| 成人精品免费在线观看| 亚洲日本成人网| 日日夜夜综合| 免费在线黄网站| 91一区二区三区在线观看| 国产精品久久久久久久久久精爆| 国产一区二区动漫| 亚洲男女网站| 日韩欧美精品免费| 97超碰欧美中文字幕| 一级黄色av片| 欧美成年人网站| 狠狠一区二区三区| 欧美日韩在线成人| ...中文天堂在线一区| 国产18精品乱码免费看| 欧美亚洲国产视频小说| 日韩av密桃| 国产成人精品一区二区三区在线观看| 午夜久久久久久| 91亚洲欧美| 国产伦精品一区二区三区视频免费| 亚洲欧美视频一区二区三区| 99自拍偷拍视频| 精品久久免费看| 欧亚一区二区| 免费在线黄网站| 国产日韩欧美a| 亚洲第一色网站| 国产精品三级网站| 一区视频在线| 国产黄色录像片| 日韩av在线网页| 成人在线分类| 亚洲爆乳无码专区| 一区二区三区在线免费播放| 伦理片一区二区三区| 亚洲一区二区三区久久| 久久男女视频| 欧美日韩免费做爰视频| 亚洲午夜性刺激影院| 4438全国亚洲精品观看视频| 婷婷丁香激情网| 亚洲成av人在线观看| 黄色av网站在线播放| 三区精品视频观看|