色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

go項(xiàng)目怎么讓docker鏡像體積減小

馬哥Linux運(yùn)維 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:Scoful ? 2022-06-23 10:49 ? 次閱讀

go 項(xiàng)目怎么讓 docker 鏡像體積減小?本文做了詳細(xì)介紹。

1. 直接編譯得到運(yùn)行文件 22M

使用的項(xiàng)目源碼地址 (https://github.com/scoful/kingProject)

本地直接編譯打一個(gè)linux運(yùn)行包

set GOOS=linuxset GOARCH=amd64go build main.go

d5260a4c-f231-11ec-ba43-dac502259ad0.png

結(jié)果是22M

2. 不編譯直接運(yùn)行的鏡像 941M

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang最新鏡像構(gòu)建FROM golang# 作者MAINTAINER scoful# 全局工作目錄WORKDIR $GOPATH/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . $GOPATH/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于不編譯打包,源代碼直接運(yùn)行)ENTRYPOINT ["go","run","main.go"]

編譯鏡像后查詢結(jié)果如下:

d5333776-f231-11ec-ba43-dac502259ad0.png

結(jié)果是941M,基本跟基礎(chǔ)鏡像golang的大小一致,而且因?yàn)闆](méi)有預(yù)先編譯,等到運(yùn)行的時(shí)候再編譯并拉取依賴包,run起來(lái)很慢

3. 編譯后的鏡像 1.14G

Dockerfile文件內(nèi)容# 基礎(chǔ)鏡像,基于golang最新鏡像構(gòu)建FROM golang# 作者MAINTAINER scoful# 全局工作目錄WORKDIR $GOPATH/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . $GOPATH/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯RUN GOOS=linux GOARCH=amd64 go build main.go# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

d545119e-f231-11ec-ba43-dac502259ad0.png

結(jié)果是1.14G,更大了,因?yàn)榧由狭司幾g過(guò)程中拉取的包,但是預(yù)先編譯,所以直接run,速度很快

4. 優(yōu)化:使用alpine版本的基礎(chǔ)鏡像 517M

優(yōu)化的方向:如果一個(gè)鏡像在https://hub.docker.com/里能搜到有alpine版本,盡量用alpine版本,相當(dāng)于是官方提供的最小化可用版本

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang的alpine版本鏡像構(gòu)建FROM golang:alpine# 作者MAINTAINER scoful# 全局工作目錄WORKDIR $GOPATH/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . $GOPATH/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯RUN GOOS=linux GOARCH=amd64 go build main.go# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

d554eeac-f231-11ec-ba43-dac502259ad0.png

結(jié)果是517M,比1.14G減少了650.36M,直接降了56%,而且run一樣很快

5. 再優(yōu)化:使用多級(jí)構(gòu)建的鏡像 28.4M

再優(yōu)化的方向:go項(xiàng)目其實(shí)只是在build的階段需要go環(huán)境,run的時(shí)候是不需要的,那build完后go環(huán)境用個(gè)alpine版本就行

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang的alpine鏡像構(gòu)建--編譯階段FROM golang:alpine AS builder# 作者MAINTAINER scoful# 全局工作目錄WORKDIR /go/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . /go/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯,關(guān)閉CGO,防止編譯后的文件有動(dòng)態(tài)鏈接,而alpine鏡像里有些c庫(kù)沒(méi)有,直接沒(méi)有文件的錯(cuò)誤RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build main.go

# 使用alpine這個(gè)輕量級(jí)鏡像為基礎(chǔ)鏡像--運(yùn)行階段FROM alpine AS runner# 全局工作目錄WORKDIR /go/kingProject# 復(fù)制編譯階段編譯出來(lái)的運(yùn)行文件到目標(biāo)目錄COPY --from=builder /go/kingProject/main .# 復(fù)制編譯階段里的config文件夾到目標(biāo)目錄COPY --from=builder /go/kingProject/config ./config# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

d5674264-f231-11ec-ba43-dac502259ad0.png

結(jié)果是28.4M,比517M減少了488.6M,再降95%,那個(gè)533M是第一級(jí)構(gòu)建生成的

6. 再再優(yōu)化:使用多級(jí)構(gòu)建+scratch基礎(chǔ)鏡像 22.8M

再再優(yōu)化的方向:再極端一點(diǎn),第二級(jí)構(gòu)建的時(shí)候用個(gè)空鏡像來(lái)當(dāng)基礎(chǔ)鏡像

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang的alpine鏡像構(gòu)建--編譯階段FROM golang:alpine AS builder# 作者MAINTAINER scoful# 全局工作目錄WORKDIR /go/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . /go/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯,關(guān)閉CGO,防止編譯后的文件有動(dòng)態(tài)鏈接,而alpine鏡像里有些c庫(kù)沒(méi)有,直接沒(méi)有文件的錯(cuò)誤RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build main.go



# 使用scratch這個(gè)空鏡像為基礎(chǔ)鏡像--運(yùn)行階段FROM scratch AS runner# 全局工作目錄WORKDIR /go/kingProject# 復(fù)制編譯階段編譯出來(lái)的運(yùn)行文件到目標(biāo)目錄COPY --from=builder /go/kingProject/main .# 復(fù)制編譯階段里的config文件夾到目標(biāo)目錄COPY --from=builder /go/kingProject/config ./config# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

d5721edc-f231-11ec-ba43-dac502259ad0.png

結(jié)果是22.8M,已經(jīng)約等于不用鏡像直接編譯出的可執(zhí)行文件大小了,比28.4M減少了5.6M,再降20%,但用scratch當(dāng)基礎(chǔ)鏡像的壞處是沒(méi)法exec進(jìn)入容器內(nèi)部,因?yàn)檎娴木褪强甄R像,啥都沒(méi)有,啥都不支持

7. 再再再優(yōu)化:go編譯命令去掉冗余輸出 16.3M

再再再優(yōu)化的方向:再再極端一點(diǎn),go編譯的時(shí)候,加上參數(shù) -ldflags="-w -s",直接去掉一些冗余輸出內(nèi)容

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang的alpine鏡像構(gòu)建--編譯階段FROM golang:alpine AS builder# 作者MAINTAINER scoful# 全局工作目錄WORKDIR /go/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . /go/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯,關(guān)閉CGO,防止編譯后的文件有動(dòng)態(tài)鏈接,而alpine鏡像里有些c庫(kù)沒(méi)有,直接沒(méi)有文件的錯(cuò)誤RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" main.go

# 使用scratch這個(gè)空鏡像為基礎(chǔ)鏡像--運(yùn)行階段FROM scratch AS runner# 全局工作目錄WORKDIR /go/kingProject# 復(fù)制編譯階段編譯出來(lái)的運(yùn)行文件到目標(biāo)目錄COPY --from=builder /go/kingProject/main .# 復(fù)制編譯階段里的config文件夾到目標(biāo)目錄COPY --from=builder /go/kingProject/config ./config# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

d58ca888-f231-11ec-ba43-dac502259ad0.png

結(jié)果是16.3M,看似比不用鏡像直接編譯出的可執(zhí)行文件還小,那是因?yàn)橹苯泳幾g沒(méi)有加上這個(gè)參數(shù),如果加上大小還是差不多的,比22.8M減少了6.5M,再降29%,好了,降無(wú)可降了,用1.14G來(lái)對(duì)比的話,減少了1.12G,足足降了99%,鵝妹子嚶!

8. 最終版:順便解決時(shí)區(qū)問(wèn)題 16.3M

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang的alpine鏡像構(gòu)建--編譯階段FROM golang:alpine AS builder# 作者MAINTAINER scoful# 全局工作目錄WORKDIR /go/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . /go/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯,關(guān)閉CGO,防止編譯后的文件有動(dòng)態(tài)鏈接,而alpine鏡像里有些c庫(kù)沒(méi)有,直接沒(méi)有文件的錯(cuò)誤RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" main.goRUN echo "https://mirrors.aliyun.com/alpine/v3.8/main/" > /etc/apk/repositories     && echo "https://mirrors.aliyun.com/alpine/v3.8/community/" >> /etc/apk/repositories     && apk add --no-cache tzdata     && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      && echo Asia/Shanghai > /etc/timezone     && apk del tzdata

# 使用scratch這個(gè)空鏡像為基礎(chǔ)鏡像--運(yùn)行階段FROM scratch AS runner# 全局工作目錄WORKDIR /go/kingProject# 復(fù)制編譯階段編譯出來(lái)的運(yùn)行文件到目標(biāo)目錄COPY --from=builder /go/kingProject/main .# 復(fù)制編譯階段里的config文件夾到目標(biāo)目錄COPY --from=builder /go/kingProject/config ./config# 復(fù)制編譯階段里的時(shí)區(qū)文件到目標(biāo)目錄COPY --from=builder /etc/localtime /etc/localtimeCOPY --from=builder /etc/timezone /etc/timezone# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

9. 最最推薦使用版:多級(jí)+alpine 21.9M

綜上所述,scratch鏡像有它的缺陷,是一個(gè)真的空鏡像,不支持很多命令,比如cp,sh等,如果要進(jìn)入容器內(nèi)部查東西,都進(jìn)不去,不適合真實(shí)情況,所以還是推薦alpine鏡像,很小5M多,可以接受。

Dockerfile文件內(nèi)容

# 基礎(chǔ)鏡像,基于golang的alpine鏡像構(gòu)建--編譯階段FROM golang:alpine AS builder# 作者MAINTAINER scoful# 全局工作目錄WORKDIR /go/kingProject# 把運(yùn)行Dockerfile文件的當(dāng)前目錄所有文件復(fù)制到目標(biāo)目錄COPY . /go/kingProject# 環(huán)境變量#  用于代理下載go項(xiàng)目依賴的包ENV GOPROXY https://goproxy.cn,direct# 編譯,關(guān)閉CGO,防止編譯后的文件有動(dòng)態(tài)鏈接,而alpine鏡像里有些c庫(kù)沒(méi)有,直接沒(méi)有文件的錯(cuò)誤RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" main.go

# 使用alpine這個(gè)輕量級(jí)鏡像為基礎(chǔ)鏡像--運(yùn)行階段FROM alpine AS runner# 全局工作目錄WORKDIR /go/kingProject# 復(fù)制編譯階段編譯出來(lái)的運(yùn)行文件到目標(biāo)目錄COPY --from=builder /go/kingProject/main .# 復(fù)制編譯階段里的config文件夾到目標(biāo)目錄COPY --from=builder /go/kingProject/config ./config# 將時(shí)區(qū)設(shè)置為東八區(qū)RUN echo "https://mirrors.aliyun.com/alpine/v3.8/main/" > /etc/apk/repositories     && echo "https://mirrors.aliyun.com/alpine/v3.8/community/" >> /etc/apk/repositories     && apk add --no-cache tzdata     && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      && echo Asia/Shanghai > /etc/timezone     && apk del tzdata# 需暴露的端口EXPOSE 8888# 可外掛的目錄VOLUME ["/go/kingProject/config","/go/kingProject/log"]# docker run命令觸發(fā)的真實(shí)命令(相當(dāng)于直接運(yùn)行編譯后的可運(yùn)行文件)ENTRYPOINT ["./main"]

over,Enjoy!!!

原文標(biāo)題:給go項(xiàng)目打最小docker鏡像,足足降低99%

文章出處:【微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209328
  • 鏡像
    +關(guān)注

    關(guān)注

    0

    文章

    164

    瀏覽量

    10707
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    457

    瀏覽量

    11846

原文標(biāo)題:給go項(xiàng)目打最小docker鏡像,足足降低99%

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎么構(gòu)建docker鏡像倉(cāng)庫(kù)軟件

    Docker Registry】用docker registry 鏡像搭建私有測(cè)試倉(cāng)庫(kù)
    發(fā)表于 08-13 11:03

    【Milk-V Duo 開(kāi)發(fā)板免費(fèi)體驗(yàn)】2、SDK編譯環(huán)境的Docker鏡像制作教程

    開(kāi)始學(xué)習(xí)制作docker鏡像 準(zhǔn)備工作:安裝docker(百度很多教程,沒(méi)啥好說(shuō),不廢話),然后將附件里的壓縮包解壓縮到任意目錄,在命令行中進(jìn)入該目錄下。 編制制作腳本
    發(fā)表于 08-24 20:23

    Docker上的Alpine Linux鏡像建立

    如何建立你自己的Docker鏡像2016-03-18 14:33 Alpine Linux的什么是Docker社區(qū)所鐘愛(ài)?輕量級(jí)容器意味著更多的計(jì)算資源。Alpine Linux的確是輕型
    發(fā)表于 10-12 11:52 ?0次下載

    淺析Docker鏡像本地存儲(chǔ)機(jī)制及容器啟動(dòng)原理

    Docker 鏡像不是一個(gè)單一的文件,而是有多層構(gòu)成。我們可通過(guò) docker images 獲取本地的鏡像列表及對(duì)應(yīng)的元信息, 接著可通過(guò)dock
    發(fā)表于 10-19 14:17 ?2528次閱讀

    Docker—簡(jiǎn)介與鏡像用法

    阿里云官方鏡像站: ??https://developer.aliyun.com/mirror/?utm_content=g_1000303593?? ? 一、容器簡(jiǎn)介 Docker是管理容器的引擎
    發(fā)表于 11-25 16:28 ?515次閱讀
    <b class='flag-5'>Docker</b>—簡(jiǎn)介與<b class='flag-5'>鏡像</b>用法

    Heroku-Docker Docker鏡像的Heroku?項(xiàng)目

    ./oschina_soft/heroku-docker.zip
    發(fā)表于 05-11 09:46 ?0次下載
    Heroku-<b class='flag-5'>Docker</b> <b class='flag-5'>Docker</b><b class='flag-5'>鏡像</b>的Heroku?<b class='flag-5'>項(xiàng)目</b>

    go項(xiàng)目怎么docker鏡像體積減小

    【導(dǎo)讀】go 項(xiàng)目怎么 docker 鏡像體積減小
    的頭像 發(fā)表于 06-12 15:07 ?1408次閱讀

    Docker鏡像的詳細(xì)講解

    本文是對(duì) Docker 鏡像的詳細(xì)講解,講解了如何安裝 Docker、配置 Docker 鏡像加速以及操作
    的頭像 發(fā)表于 08-02 10:00 ?2172次閱讀

    從零開(kāi)始學(xué)習(xí)制作、以及使用Tina的Docker編譯鏡像

    學(xué)習(xí)制作、以及使用Tina的Docker編譯鏡像
    的頭像 發(fā)表于 08-28 11:45 ?2306次閱讀
    從零開(kāi)始學(xué)習(xí)制作、以及使用Tina的<b class='flag-5'>Docker</b>編譯<b class='flag-5'>鏡像</b>

    減少docker鏡像大小的方法

    Docker 是一種容器引擎,可以在容器內(nèi)運(yùn)行一段代碼。Docker 鏡像是在任何地方運(yùn)行您的應(yīng)用程序而無(wú)需擔(dān)心應(yīng)用程序依賴性的方式。
    的頭像 發(fā)表于 05-15 11:13 ?936次閱讀
    減少<b class='flag-5'>docker</b><b class='flag-5'>鏡像</b>大小的方法

    docker 搜索鏡像,docker查看鏡像詳細(xì)信息(docker下載鏡像命令)

    Docker Hub是集中管理的Docker鏡像注冊(cè)中心。通過(guò)Docker 用戶可以在注冊(cè)中心搜索、下載和使用CLI命令行工具中的鏡像。以下
    的頭像 發(fā)表于 07-19 09:46 ?1848次閱讀

    Dockerfile定義Docker鏡像的構(gòu)建過(guò)程

    了解Dockerfile Dockerfile 是一個(gè)文本文件,用于定義 Docker 鏡像的構(gòu)建過(guò)程。它以指令的形式描述了如何構(gòu)建鏡像,從基礎(chǔ)鏡像開(kāi)始逐步添加配置、文件和依賴,最終形
    的頭像 發(fā)表于 09-30 10:22 ?2541次閱讀

    如何在Windows系統(tǒng)上設(shè)置Docker鏡像

    在使用 Docker 進(jìn)行鏡像下載和構(gòu)建時(shí),由于眾所周知的原因,國(guó)內(nèi)用戶可能會(huì)遇到下載速度慢或者無(wú)法連接的問(wèn)題。為了解決這個(gè)問(wèn)題,我們可以使用國(guó)內(nèi)的鏡像源來(lái)加速下載速度。本文將介紹如何在 Windows 系統(tǒng)上設(shè)置
    的頭像 發(fā)表于 10-24 16:55 ?5957次閱讀

    構(gòu)建docker鏡像應(yīng)該遵循哪些原則

    構(gòu)建 Docker 鏡像時(shí),應(yīng)遵循以下原則: 單一職責(zé):每個(gè)鏡像應(yīng)只包含一個(gè)應(yīng)用或服務(wù),避免將多個(gè)應(yīng)用或服務(wù)放在同一個(gè)鏡像中。這樣可以確保鏡像
    的頭像 發(fā)表于 11-23 09:41 ?1014次閱讀

    手動(dòng)構(gòu)建Docker鏡像的方法

    不推薦使用docker commit命令,而應(yīng)該使用更靈活、更強(qiáng)大的dockerfile來(lái)構(gòu)建docker鏡像
    的頭像 發(fā)表于 08-05 15:30 ?516次閱讀
    手動(dòng)構(gòu)建<b class='flag-5'>Docker</b><b class='flag-5'>鏡像</b>的方法
    主站蜘蛛池模板: 小p孩玩成年女性啪啪资源| 在线二区 中文 无码| 国产一区二区波多野结衣| 亚洲人成www在线播放| 精品免费在线视频| 成年人视频在线免费| 一本之道高清在线3线观看| 欧美日韩亚洲成人| 九九九九九热| 国产成人在线视频播放| 最新2017年韩国伦理片在线| 人妻夜夜爽天天爽三区麻豆AV网站| 国产福利视频一区二区| 99香蕉视频| 亚洲人成在线播放无码| 视频一区国产第一页| 花蝴蝶在线高清视频观看免费播放| www在线小视频免费| 2021全国精品卡一卡二| 亚洲 日本 欧美 中文字幕| 色即是空 BT| 欧美日韩在线亚洲一| 老鸭窝毛片| 精品午夜久久福利大片免费| 国产黄a三级三级三级| 丰满的大白屁股ass| jizzjizz3d动漫| 19不插片免费视频| 亚洲人成77777| 亚洲免费福利在线视频| 日日干夜夜艹| 乳女教师欲乱动漫无修版动画| 欧美动物交ideos| 欧美日韩亚洲中字二区| 嫩草电影网嫩草影院| 名女躁b久久天天躁| 美女张开大腿| 男人到天堂a线牛叉在线| 麻豆官网入口| 嫩草影院成人| 全黄H全肉细节文短篇|