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

Jenkins部署SpringBoot的Docker鏡像步驟詳解

開發 架構
下面介紹Jib( jib-maven-plugin插件 )如何將SpringBoot應用程序分層打包Docker鏡像,充分利用Docker的鏡像分層復用機制,解決網絡限制和占用大量磁盤空間的問題。

前面我們介紹了K8S+Docker+Maven插件打包部署SpringCloud微服務項目,在實際應用過程中,很多項目沒有用到K8S和微服務,但是用到了Docker和SpringBoot,所以,我們這邊介紹,如果使用Jenkins+jib-maven-plugin插件打包部署SpringBoot項目的Docker鏡像。

網上有多種Docker打包插件使用說明,講解最多的是Spotify開源的,Spotify官方已不再推薦使用docker-maven-plugin插件進行打包,而是推薦其最新的docker打包插件dockerfile-maven-plugin,但是dockerfile-maven-plugin也已經很久沒有更新了,在使用方面也有局限性,比如:只支持在本機Docker的鏡像build、tag、push。

經過幾個插件的對比,發現Google開源的Jib插件功能更強大,它可以不寫Dockerfile,不需要在本地安裝Docker環境就能實現Docker打包,而且一直在更新,所以這里選擇這個插件作為我們的Docker打包插件。Jib構建Java的Docker和OCI映像,不需要在本機安裝Docker daemon,也不需要深入掌握Docker最佳實踐。它可以作為Maven和Gradle的插件以及Java庫使用。

下面介紹Jib( jib-maven-plugin插件 )如何將SpringBoot應用程序分層打包Docker鏡像,充分利用Docker的鏡像分層復用機制,解決網絡限制和占用大量磁盤空間的問題。

Jib( jib-maven-plugin插件 )構建的三個參數:

  • buildTar:本地構建,不需要Docker daemon就可以將鏡像生成tar文件,保存在工程的target目錄下。
  • dockerBuild:將構建的鏡像存到當前環境的Docker daemon。
  • build:將構建的鏡像推送到遠程倉庫,官方倉庫或者Harbor私有倉庫。

一、SpringBoot項目jib-maven-plugin插件配置說明

我們這里主要使用buildTar命令,將Docker鏡像文件打包在本地,然后通過Jenkins插件發布到服務器運行,這樣可以不需要搭建使用私有Docker鏡像倉庫Harbor。

  • 打包命令:
    -Dimage可以在打包時自定義鏡像名稱和版本,這個可以在Jenkins腳本時使用,如果不配置默認使用pom.xml里面配置的鏡像名稱和版本,如果不設置版本,默認版本是latest。
clean package -Ptest -Dimage=gitegg:1.0.1 jib:buildTar -f pom.xml
  • docker鏡像載入命令:
    docker load用來載入鏡像包,但是不能對載入的鏡像重命名;docker import用來載入容器包,但兩者都會恢復為鏡像,可以為鏡像指定新名稱;經過測試,jib-maven-plugin插件生成的Docker鏡像文件jib-image.tar只能通過docker load載入,并且在pom.xml配置中format不能選擇OCI(K8S時使用OCI),否則載入不了。
docker load --input  jib-image.tar
  • 可以將jib-maven-plugin插件的打包命令綁定到Maven的生命周期:
<executions>
                        <execution>
                            <phase>install</phase>
                            <goals>
                                <goal>build</goal>
                            </goals>
                        </execution>
                    </executions>
  • 將Docker鏡像推送到私有鏡像倉庫Harbor,當然這里不需要,但是可以配置鏡像名稱和鏡像版本,當在運行打包命令時,沒有加參數-Dimage,就會取此處的配置。
<to>
                            <image>私有倉庫地址/項目名稱/${project.artifactId}:${project.version}</image>
                            <auth>
                                <username>私有倉庫用戶名</username>
                                <password>私有倉庫密碼</password>
                            </auth>
                        </to>
  • volumes 創建容器內的目錄,當SpringBoot項目記錄日志等需要自定義的目錄地址時,此處需要定義容器內的目錄;SpringBoot使用的內嵌Tomcat容器默認使用/tmp作為工作目錄,這里可以不配置/tmp的valumes。
<!-- 容器內的目錄 -->
                            <volumes>
                                <value>/tmp</value>
                                <value>/log</value>
                            </volumes>
  • workingDirectory 容器內的工作目錄,容器啟動時執行的命令會在容器內的此目錄下執行。
<workingDirectory>/gitegg</workingDirectory>
  • format 使用OCI構建OCI容器映像。這里直接注釋掉不要使用,否則docker load時不能載入,在K8S里面可以使用,所以這里不使用這個format。
<!--K8S時,使用OCI,單獨只用docker load會報錯,所以這里不使用這個format-->
<format>OCI</format>

下面是SpringBoot項目中pom.xml的jib-maven-plugin插件配置信息:

······
    <properties>
······
        <!-- jib-maven-plugin插件版本,代碼打包docker -->
        <jib.maven.plugin.version>3.3.2</jib.maven.plugin.version>
······
    </properties>
······
                <!-- Docker 打包插件 -->
                <plugin>
                    <groupId>com.google.cloud.tools</groupId>
                    <artifactId>jib-maven-plugin</artifactId>
                    <version>${jib.maven.plugin.version}</version>
                    <!-- 綁定到Maven的install生命周期 ,此處如果不使用https,會有問題,需要設置sendCredentialsOverHttp=true-->
                    <executions>
                        <execution>
                            <phase>install</phase>
                            <goals>
                                <goal>build</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <!--允許非https-->
                        <allowInsecureRegistries>true</allowInsecureRegistries>
                        <!-- 相當于Docerkfile中的FROM -->
                        <from>
                            <image>openjdk:11-jre</image>
                        </from>
                        <to>
                            <image>${docker.harbor.addr}/${docker.harbor.project}/${project.artifactId}:${project.version}</image>
                            <auth>
                                <username>${docker.harbor.username}</username>
                                <password>${docker.harbor.password}</password>
                            </auth>
                        </to>
                        <container>
                            <!--jvm內存參數-->
                            <jvmFlags>
                                <jvmFlag>-Xms512m</jvmFlag>
                                <jvmFlag>-Xmx8g</jvmFlag>
                            </jvmFlags>
                            <!-- 容器內的目錄-->
                            <volumes>
                                <value>/tmp</value>
                                <value>/log</value>
                            </volumes>
                            <workingDirectory>/gitegg</workingDirectory>
                            <environment>
                                <TZ>Asia/Shanghai</TZ>
                            </environment>
                            <!--使用該參數保證鏡像的創建時間與系統時間一致-->
                            <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
                            <!--K8S時,使用OCI,非K8S時,load會報錯-->
<!--                            <format>OCI</format>-->
                        </container>
                    </configuration>
                </plugin>

二、服務器Docker運行環境配置

前面我們講了如何安裝Docker,以及相關配置,所以這里不再贅述,直接按照自己的服務器實際情況進行安裝配置Docker即可,這里講解如何為運行SpringBoot的Fat Jar做環境準備,以及說明鏡像包傳輸到服務器之后執行的部署腳本。

1、部署及備份目錄準備

  • 新建 /opt/tmp 目錄,用于Jenkins打包后,通過 Publish Over SSH插件將包傳輸到服務器的臨時目錄。
  • 新建 /opt/bak 目錄,用于存儲所有部署過的包備份,方便后續版本回滾。此目錄可能會占用很大空間,所以需要選擇一個磁盤空間大的掛載目錄。
  • 新建 /opt/script 目錄,用于Jenkins將包傳輸完成之后,執行安裝、備份操作的相關命令腳本。
  • 新建 /data/container/docker_server/tmp 目錄,用于映射容器內/tmp目錄,/tmp目錄是SpringBoot內置Tomcat默認運行目錄。
  • 新建 /data/container/docker_server/logs目錄,用于映射容器內/var/log目錄,/var/log目錄是項目配置的日志存放目錄,映射到宿主機之后,方便查看不同級別的日志。
mkdir -p /opt/tmp /opt/bak /opt/script /data/container/docker_server/tmp /data/container/docker_server/logs

chmod -R 777 /opt/tmp /opt/bak /opt/script /data/container/docker_server/tmp /data/container/docker_server/logs

2、部署腳本編寫說明

  • 定義入參,可以通過Jenkins任務將參數傳入腳本中,我們定義了下面5個參數:
    container_name=gitegg-server : 容器名稱image_name=gitegg-server : 鏡像名稱version=latest : 鏡像版本image_port=8182 : 宿主主機端口映射server_port=8080 : 容器內服務端口
  • 對參數進行檢查,是否未傳入參數,這里根據自己的實際情況判斷,比如必須傳入哪些參數,就設置參數的個數不能小于幾。
echo "param validate"
if [ $# -lt 1 ]; then  
  echo "you must use like this : ./publish_docker_server.sh <container_name> <image_name> <version> [image port] [server port]"  
  exit  
fi
  • 入參賦值,如果有參數傳入,則取服務參數,如果沒有參數傳入則取默認值
if [ "$1" != "" ]; then
   container_name="$1"
fi
echo "container_name=" $container_name
if [ "$2" != "" ]; then
   image_name="$2"
fi
if [ "$3" != "" ]; then
   version="$3"
fi
echo "version=" $version
if [ "$4" != "" ]; then
   image_port="$4"
fi
echo "image_port=" $image_port
if [ "$5" != "" ]; then
   server_port="$5"
fi
echo "server_port=" $server_port
  • 停止并刪除容器
echo "執行docker ps"
docker ps 
if [[ "$(docker inspect $container_name 2> /dev/null | grep $container_name)" != "" ]]; 
then 
  echo $container_name "容器存在,停止并刪除"
  echo "docker stop" $container_name
  docker stop $container_name
  echo "docker rm" $container_name
  docker rm $container_name
else 
  echo $container_name "容器不存在"
fi
  • 停止并刪除鏡像
# 刪除鏡像
echo "執行docker images"
docker images
if [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]]; 
then 
  echo $image_name '鏡像存在,刪除鏡像'
  docker rmi $(docker images -q $image_name 2> /dev/null) --force
else 
  echo $image_name '鏡像不存在'
fi
  • 備份本次安裝鏡像包
#bak image
echo "bak image" $image_name
BAK_DIR=/opt/bak/docker/$image_name/`date +%Y%m%d`
mkdir -p "$BAK_DIR"
cp "/opt/tmp/jib-image.tar" "$BAK_DIR"/"$image_name"_`date +%H%M%S`.tar
  • 執行安裝鏡像包命令
echo "docker load" $image_name
docker load --input /opt/tmp/jib-image.tar
  • 執行運行命令
echo "docker run" $image_name
docker run -d -p $image_port:$server_port --name=$container_name --restart=always -v /data/container/docker_server/tmp:/tmp -v /data/container/docker_server/logs:/var/log $image_name
  • 刪除安裝文件,因為前面已經備份過了,所以這里將臨時安裝文件刪除
echo "remove tmp " $image_name
rm -rf /opt/tmp/jib-image.tar
  • 打印執行完成的命令
echo "Docker Server is starting,please try to access $container_name conslone url"

3. 完整的安裝部署腳本

container_name=gitegg-server
image_name=gitegg-server
version=latest
image_port=8181
server_port=8080
echo "param validate"
if [ $# -lt 1 ]; then  
  echo "you must use like this : ./publish_docker_server.sh <container_name> <image_name> <version> [image port] [server port]"  
  exit  
fi
if [ "$1" != "" ]; then
   container_name="$1"
fi
echo "container_name=" $container_name
if [ "$2" != "" ]; then
   image_name="$2"
fi
if [ "$3" != "" ]; then
   version="$3"
fi
echo "version=" $version
if [ "$4" != "" ]; then
   image_port="$4"
fi
echo "image_port=" $image_port
if [ "$5" != "" ]; then
   server_port="$5"
fi
echo "server_port=" $server_port

echo "執行docker ps"
docker ps 
if [[ "$(docker inspect $container_name 2> /dev/null | grep $container_name)" != "" ]]; 
then 
  echo $container_name "容器存在,停止并刪除"
  echo "docker stop" $container_name
  docker stop $container_name
  echo "docker rm" $container_name
  docker rm $container_name
else 
  echo $container_name "容器不存在"
fi
# 刪除鏡像
echo "執行docker images"
docker images
if [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]]; 
then 
  echo $image_name '鏡像存在,刪除鏡像'
  docker rmi $(docker images -q $image_name 2> /dev/null) --force
else 
  echo $image_name '鏡像不存在'
fi

#bak image
echo "bak image" $image_name
BAK_DIR=/opt/bak/docker/$image_name/`date +%Y%m%d`
mkdir -p "$BAK_DIR"
cp "/opt/tmp/jib-image.tar" "$BAK_DIR"/"$image_name"_`date +%H%M%S`.tar

echo "docker load" $image_name
docker load --input /opt/tmp/jib-image.tar
echo "docker run" $image_name
docker run -d -p $image_port:$server_port --name=$container_name --restart=always -v /data/container/docker_server/tmp:/tmp -v /data/container/docker_server/logs:/var/log $image_name
echo "remove tmp " $image_name
rm -rf /opt/tmp/jib-image.tar

echo "Docker Server is starting,please try to access $container_name conslone url"

三、新建Jenkins配置打包任務,部署SpringBoot項目Docker鏡像

1、Dashboard > 新建任務,輸入任務名稱,選擇“構建一個maven項目”,點擊確定。

2、項目配置,進入到任務配置頁

  • 丟棄舊的構建 :這里在保持構建的最大個數填寫5,當然可以根據自己情況填寫,否則舊的構建包會一直存在占用磁盤空間。

  • 源碼管理:配置git代碼地址、用戶名密碼和版本分支,如果是需要用戶名密碼的git庫,那么下面需要選擇訪問的用戶名密碼,這里一定要使用用戶名密碼方式,使用token的方式無法選中。可以在下方add,也可以在Jenkins全局Credentials 中添加,方便其它任務使用。

  • 構建觸發器:可選可不選,這個根據自己的需求選擇,任務在什么情況下出發構建。

  • 構建環境:這里不需要選擇,在介紹構建NodeJS項目時,需要選中NodeJS環境。

  • Build:這里填寫Maven打包命令,可以添加參數選擇打包環境test或prod,定義鏡像名稱和版本等。
clean package -Dmaven.test.skip=true -Ptest -Dimage=gitegg jib:buildTar -f pom.xml

  • Post Steps:將打包后的文件發送到服務器,并執行設置好的腳本,這里選擇Run only if build succeeds,當構建成功時Post。

  • Exec command:將打好的包發布到環境之后,在環境上執行的部署腳本命令。publish_docker_server.sh 是腳本文件、第一個gitegg 是容器名稱、第二個gitegg 是鏡像名稱、latest 是鏡像版本、8181 是宿主機端口號、8080 是容器內服務口號。
/opt/script/publish_docker_server.sh gitegg gitegg latest 8181 8080

3、運行構建任務

  • 立即構建

  • 查看構建日志:點擊立即構建之后,下方會出現進度條,點擊進度條就可以進入構建日志界面。

  • 構建成功后,下方會給出構建成功提示,此時登錄遠程服務器查看文件是否部署成功即可。

4、Docker鏡像部署成功之后,可以使用以下Docker常用命令查看運行情況

  • 查看鏡像
docker images
  • 查看有哪些容器在運行
docker ps
  • 停止容器
docker stop 容器id
  • 刪除容器、刪除鏡像
docker rm 容器id
docker rmi 鏡像id
  • 查看容器運行日志
docker logs -f 容器id
  • 進入到容器
docker exec -it 容器id /bin/bash
責任編輯:姜華 來源: 今日頭條
相關推薦

2023-09-08 23:30:19

2023-09-14 20:55:52

NodeJSDocker

2023-09-12 07:06:04

2010-08-10 13:22:02

2010-06-03 10:51:09

Hadoop安裝部署

2009-07-17 13:17:48

部署Eclipse R

2023-09-08 08:14:14

2013-09-18 14:46:32

StormStorm集群

2022-08-04 10:39:23

Jenkins集成CD

2024-03-26 00:00:01

2009-03-19 11:02:47

Windows Emb

2021-09-08 06:51:53

DockerCoupons項目

2024-08-12 09:54:00

2024-01-05 07:47:04

SpringBootJavajar啟動

2010-05-28 12:32:50

2024-05-06 08:07:01

Spring項目Java

2015-07-21 14:38:02

Docker部署

2023-07-03 08:52:31

容器Golang

2020-11-16 09:05:08

Docker架構容器

2019-07-16 14:44:52

DockerMySQL操作系統
點贊
收藏

51CTO技術棧公眾號

精品国产综合久久| 欧美激情xxxxx| 第四色婷婷基地| 高清全集视频免费在线| 国产成a人无v码亚洲福利| 久久久视频精品| 欧洲美熟女乱又伦| 日韩一区二区三区高清在线观看| 午夜亚洲福利老司机| 日本不卡一区| 亚洲成a人片77777精品| 日韩中文字幕区一区有砖一区| 久久久国产精品免费| 国产精品jizz| 欧美特黄不卡| 欧美视频在线播放| 九一国产精品视频| 免费网站成人| 国产亚洲欧美在线| 国精产品一区二区| 国产av精国产传媒| 日韩电影在线一区| 78m国产成人精品视频| 艳妇荡乳欲伦69影片| 蜜桃一区二区三区| 精品1区2区在线观看| 免费一区二区三区在线观看| 伊人网在线播放| 一区二区三区不卡视频在线观看 | 久久久久国产成人精品亚洲午夜| 91在线高清视频| 亚洲大尺度在线观看| 亚洲第一区色| 欧美日韩国产第一页| 91导航在线观看| 久久av影视| 亚洲第一精品夜夜躁人人爽| av在线免费看片| 成人国产精品| 欧美中文字幕一区二区三区| 国产午夜伦鲁鲁| 蜜桃传媒在线观看免费进入| 亚洲色图丝袜美腿| 在线观看亚洲视频啊啊啊啊| 国产69精品久久app免费版| 91色porny在线视频| 国内精品久久国产| 日韩一级片免费| 从欧美一区二区三区| 91aaaa| jizz国产视频| 国产一区二区三区四区五区入口| 国产日产欧美精品| 中文字幕av资源| 男女视频一区二区| 国产精品美女午夜av| 成人毛片一区二区三区| 日韩精品一级二级 | 久久这里只有精品9| 香蕉久久夜色精品国产| 欧美在线国产精品| 中文字幕超碰在线| 狂野欧美一区| 国产精品一区久久久| 中文字幕欧美在线观看| 久久99热狠狠色一区二区| 91精品国产综合久久香蕉922| 在线观看色网站| 国产一区999| 国产成人精品自拍| 天天干天天爽天天操| 久久综合色综合88| 日韩妆和欧美的一区二区| 成人性生交大片免费看午夜| 国产精品―色哟哟| 干日本少妇视频| 超碰在线中文字幕| 91福利在线观看| theporn国产精品| 97超碰成人| 亚洲精品美女久久| 亚洲av毛片基地| 一本一道久久综合狠狠老 | 3d性欧美动漫精品xxxx软件| 欧美视频一区二| 制服下的诱惑暮生| 日韩精品免费一区二区三区竹菊 | www.xx日本| 午夜精品国产| 日韩av理论片| 国产精品丝袜黑色高跟鞋| 成人性生交大片免费看中文| 免费观看成人在线| 看黄网站在线| 午夜私人影院久久久久| 亚洲精品一二三四五区| 日韩精品一级| 国产亚洲精品美女久久久久| 国产av无码专区亚洲av毛网站| aa级大片欧美三级| 国产欧美一区二区白浆黑人| 精品人妻无码一区二区色欲产成人| 93久久精品日日躁夜夜躁欧美| 欧洲亚洲一区| 超碰在线中文字幕| 欧美日韩国产一级二级| 欧美大喷水吹潮合集在线观看| 成人嫩草影院| 2021国产精品视频| 国产人妻精品一区二区三区| 久久亚洲一区二区三区四区| 少妇高潮流白浆| 在线日本欧美| 日韩高清欧美高清| 欧美三级免费看| 青椒成人免费视频| 极品尤物一区二区三区| 快射av在线播放一区| 色婷婷av久久久久久久| 北京富婆泄欲对白| 亚州av乱码久久精品蜜桃| 欧美一级片在线播放| www.欧美国产| 亚洲欧美综合在线精品| 日本成人在线免费视频| 欧美18xxxx| 久久久久九九九九| 国产熟女一区二区三区五月婷| 国产日韩精品一区二区浪潮av| 老子影院午夜伦不卡大全| 国产999精品在线观看| 亚洲图片在线综合| 国产精品人人人人| 99精品视频一区二区| 国产成人一区二区三区别| 亚洲毛片在线免费| 亚洲最新在线视频| www毛片com| 久久久久久久久久久黄色| 黄色大片中文字幕| 欧美sss在线视频| 久久久久久久一区二区| 蜜臀av中文字幕| 亚洲综合色在线| 伊人av在线播放| 国产精品激情| 国产三区精品| 午夜欧美激情| 亚洲人成电影网| 欧美视频xxxx| 亚洲丝袜精品丝袜在线| 亚洲制服在线观看| 亚洲午夜伦理| 久久大片网站| 日韩天堂在线| 色老头一区二区三区| 亚洲一卡二卡在线| 亚洲欧美日韩在线不卡| 久久黄色一级视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 成人久久18免费网站麻豆 | 亚洲免费视频观看| 日韩 国产 欧美| 欧美国产亚洲另类动漫| 亚洲综合av在线播放| 一精品久久久| 国产麻豆乱码精品一区二区三区| 色在线视频观看| 国产一区二区成人| 国产女人18毛片18精品| 亚洲一卡二卡三卡四卡无卡久久| 久久人人妻人人人人妻性色av| 久久一区中文字幕| 一区二区在线观| 国产精品一线| 国产精国产精品| 激情成人四房播| 亚洲国产精品va在线看黑人动漫| 男人日女人网站| 国产精品你懂的| 久久aaaa片一区二区| 亚洲手机在线| 日韩福利视频| 91精品一久久香蕉国产线看观看| 久色乳综合思思在线视频| 亚洲黄色精品视频| 色狠狠一区二区| 99久久久无码国产精品不卡| 国产在线一区观看| 国产午夜福利100集发布| 日本不卡高清| caoporen国产精品| 在线毛片观看| 日韩有码在线观看| 天天干视频在线观看| 欧美视频在线观看一区二区| 草视频在线观看| 91免费观看视频在线| 亚洲欧美自拍另类日韩| 国产亚洲毛片| 三年中文高清在线观看第6集| 动漫av一区| 国产欧美日韩综合精品| 色黄视频在线观看| 日韩视频一区在线| 手机在线精品视频| 欧美日韩视频不卡| 五月婷婷激情网| 国产精品国产自产拍高清av| 日韩Av无码精品| 狠狠色狠狠色合久久伊人| 白嫩少妇丰满一区二区| 一区二区三区在线观看免费| 久久99精品国产一区二区三区| 91九色综合| 日本精品久久久| 日本天码aⅴ片在线电影网站| 亚洲美女av电影| а√中文在线资源库| 精品污污网站免费看| 国产一卡二卡在线| 亚洲欧洲一区二区在线播放| 国产亚洲色婷婷久久99精品91| 国产成人精品午夜视频免费| 欧美一级黄色片视频| 激情欧美日韩一区| 亚洲午夜久久久影院伊人| 国产99久久| 国产精品一区免费观看| 97精品资源在线观看| 秋霞午夜一区二区| 夜鲁夜鲁夜鲁视频在线播放| 欧美另类第一页| avtt亚洲| 亚洲女人被黑人巨大进入al| 色婷婷视频在线| 日韩一区二区视频在线观看| 瑟瑟视频在线免费观看| 天天操天天色综合| 人人干人人干人人干| 亚洲蜜臀av乱码久久精品蜜桃| 中字幕一区二区三区乱码| 91亚洲男人天堂| 可以直接看的无码av| 成人av影院在线| 99热这里只有精品2| 久久超级碰视频| 男人添女人下面免费视频| 噜噜噜在线观看免费视频日韩 | 国产在线精品一区| 亚洲1区在线观看| 91香蕉国产在线观看| 国产在视频一区二区三区吞精| 国产精品永久免费| a屁视频一区二区三区四区| 欧美孕妇毛茸茸xxxx| 丰满大乳少妇在线观看网站| 午夜精品一区二区三区av| 色呦呦网站在线观看| 欧美成人午夜免费视在线看片| www.亚洲视频| 久久精品视频亚洲| 麻豆传媒在线观看| 久久视频在线免费观看| 成人高清在线| 少妇高潮 亚洲精品| 天天综合视频在线观看| 久久精品这里热有精品| gogo久久| 欧美专区日韩视频| 日韩欧美看国产| 国产欧美亚洲视频| 91国产精品| 国产精品国产精品| 日韩最新在线| 亚洲图片小说在线| 欧美日韩少妇| 青青草成人免费在线视频| 丝袜脚交一区二区| 国产精品一区二区小说| 国产剧情在线观看一区二区| 国内自拍偷拍视频| 国产色91在线| 五月天色婷婷丁香| 依依成人精品视频| 国产乡下妇女做爰毛片| 欧美日韩激情美女| 一区二区乱子伦在线播放| 欧美一级生活片| 欧美日韩伦理片| 日韩视频免费观看| 成人影音在线| 国产玖玖精品视频| av综合网址| 日韩wuma| 青青草原综合久久大伊人精品| 欧美久久久久久久久久久久久久| 国产欧美欧美| 91av视频免费观看| 久久综合久久综合久久综合| 人成免费在线视频| 午夜一区二区三区在线观看| 91精东传媒理伦片在线观看| 日韩女同互慰一区二区| 久久久久久青草| 欧美成人精品影院| 欧美aaa级| 国产精品一区免费观看| 成人黄色av| 欧美精品色婷婷五月综合| 精品在线一区二区| 久久久久国产精品区片区无码| 成人免费一区二区三区在线观看| 亚洲天堂一区在线观看| 日韩一区二区三区电影在线观看| 高清毛片aaaaaaaaa片| 色狠狠av一区二区三区香蕉蜜桃| 91av久久| 国产一区二中文字幕在线看| 国产欧美日韩影院| 国产美女永久无遮挡| 日本女优在线视频一区二区| 精品少妇人妻一区二区黑料社区| 亚洲另类在线视频| 老熟妇一区二区三区啪啪| 欧美成人性战久久| a视频在线播放| 国产精品久久久久久久一区探花| 欧美日韩另类图片| 可以看毛片的网址| 国产一区二区伦理| 日本免费www| 欧美性猛片aaaaaaa做受| 色鬼7777久久| 久久久免费观看| julia中文字幕一区二区99在线| 亚洲精品国产精品国自产观看| 亚洲综合精品| 黄色免费看视频| 亚洲成人动漫在线观看| www.97超碰| 久久久999精品| 国产亚洲观看| 超碰免费在线公开| 蜜臀av性久久久久蜜臀aⅴ流畅| 在线观看免费黄色网址| 色8久久人人97超碰香蕉987| 天天摸天天干天天操| 1769国内精品视频在线播放| 国产精品网在线观看| 大陆av在线播放| 99久久99久久精品免费观看| 国产亚洲精品久久久久久打不开| 欧美一区二区在线播放| 污污的视频在线观看| 亚洲qvod图片区电影| 亚洲精品一区二区在线看| 无套内谢丰满少妇中文字幕| 亚洲欧美一区二区在线观看| 一级片免费观看视频| 欧美精品在线网站| 精品国产18久久久久久二百| 自拍另类欧美| 丁香亚洲综合激情啪啪综合| 欧美精品xxxxx| 精品精品国产高清a毛片牛牛 | 青青青国产精品一区二区| 欧美日韩国产一区二区三区不卡| 老司机午夜av| 国产精品二三区| 国产精品无码久久av| 欧美另类精品xxxx孕妇| www.成人网| 亚洲午夜无码av毛片久久| 国产亚洲欧美一级| 一级黄色片在线观看| 久久视频免费观看| 成人搞黄视频| 欧美日韩在线不卡视频| 亚洲欧美偷拍卡通变态| 高潮毛片7777777毛片| 国内成人精品一区| 北条麻妃国产九九九精品小说 | 日本一区二区三区视频在线观看| 老司机午夜精品| 久久久99精品| 亚洲福利在线视频| 91精品国产66| 国产 欧美 日韩 一区| 成人黄色av网站在线| 欧产日产国产69| 色偷偷av亚洲男人的天堂| 国产一区二区三区不卡av| 男人亚洲天堂网| 亚洲色欲色欲www在线观看| 你懂的在线看| 444亚洲人体| 在线成人h网| 天堂网中文在线观看| 亚洲高清不卡av|