亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

容器Docker入門詳解

2024-09-01 13:56:23
字體:
來源:轉載
供稿:網友

一、概述

1.1 基本概念:

Docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

1.2 優勢:

簡化程序:

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的任務,在Docker容器的處理下,只需要數秒就能完成。

節省開支:

一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

1.3 與傳統VM特性對比:

作為一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具有顯著優勢:

Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多。

Docker容器對系統資源需求很少,一臺主機上可以同時運行數千個Docker容器。

Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。

Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。

Docker容器除了運行其中的應用之外,基本不消耗額外的系統資源,保證應用性能的同時,盡量減小系統開銷。

Docker利用Linux系統上的多種防護機制實現了嚴格可靠的隔離。從1.3版本開始,Docker引入了安全選項和鏡像簽名機制,極大地提高了使用Docker的安全性。

 

特性 容器 虛擬機
啟動速度 秒級 分鐘級
硬盤使用 一般為MB 一般為GB
性能 接近原生 弱于原生
系統支持量 單機支持上千個容器 一般幾十個
隔離性 安全隔離 完全隔離

 

1.4 基礎架構

Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。

Docker 容器通過 Docker 鏡像來創建。

容器與鏡像的關系類似于面向對象編程中的對象與類。

 

 

Docker 面向對象
                     容器                    對象
                     鏡像                      類

 

容器,Docker

1.5 Docker技術的基礎:

  • namespace,容器隔離的基礎,保證A容器看不到B容器. 6個名空間:User,Mnt,Network,UTS,IPC,Pid
  • cgroups,容器資源統計和隔離。主要用到的cgroups子系統:cpu,blkio,device,freezer,memory
  • unionfs,典型:aufs/overlayfs,分層鏡像實現的基礎

1.6 Docker組件:

  • docker Client客戶端————>向docker服務器進程發起請求,如:創建、停止、銷毀容器等操作
  • docker Server服務器進程—–>處理所有docker的請求,管理所有容器
  • docker Registry鏡像倉庫——>鏡像存放的中央倉庫,可看作是存放二進制的scm

二、安裝部署

2.1 準備條件

目前,CentOS 僅發行版本中的內核支持 Docker。

Docker 運行在 CentOS 7 上,要求系統為64位、系統內核版本為 3.10 以上。

Docker 運行在CentOS-6.5或更高的版本的 CentOS 上,要求系統為64位、系統內核版本2.6.32-431 或者更高版本。

2.2 安裝docker

yum install docker -y   #安裝systemctl start docker   #啟動 systemctl enable docker  #設置開機自啟動

2.3 基本命令

docker search centos #搜索鏡像

默認從國外拉去,速度很慢,可以使用daocloud配置加速

 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://d6f11267.m.daocloud.io腳本是寫入echo "{/"registry-mirrors/": [/"http://d6f11267.m.daocloud.io/"]}"> /etc/docker/daemon.jsonsystemctl restart docker    #重啟失效

容器,Docker

根據需求拉取鏡像:

docker pull docker.io/ansible/centos7-ansible

拉去search到的全部鏡像:

for i in `docker search centos|awk '!/NAME/{print $2}'`;do docker pull $i;done

查看本地鏡像:

docker images

容器,Docker

2.4 命令整理:

容器操作:

docker create # 創建一個容器但是不啟動它docker run # 創建并啟動一個容器docker stop # 停止容器運行,發送信號SIGTERMdocker start # 啟動一個停止狀態的容器docker restart # 重啟一個容器docker rm # 刪除一個容器docker kill # 發送信號給容器,默認SIGKILLdocker attach # 連接(進入)到一個正在運行的容器docker wait # 阻塞一個容器,直到容器停止運行

獲取容器信息:

docker ps # 顯示狀態為運行(Up)的容器docker ps -a # 顯示所有容器,包括運行中(Up)的和退出的(Exited)docker inspect # 深入容器內部獲取容器所有信息docker logs # 查看容器的日志(stdout/stderr)docker events # 得到docker服務器的實時的事件docker port # 顯示容器的端口映射docker top # 顯示容器的進程信息docker diff # 顯示容器文件系統的前后變化

導出容器:

docker cp # 從容器里向外拷貝文件或目錄docker export # 將容器整個文件系統導出為一個tar包,不帶layers、tag等信息

執行:

docker exec # 在容器里執行一個命令,可以執行bash進入交互式

鏡像操作:

docker images # 顯示本地所有的鏡像列表docker import # 從一個tar包創建一個鏡像,往往和export結合使用docker build # 使用Dockerfile創建鏡像(推薦)docker commit # 從容器創建鏡像docker rmi # 刪除一個鏡像docker load # 從一個tar包創建一個鏡像,和save配合使用docker save # 將一個鏡像保存為一個tar包,帶layers和tag信息docker history # 顯示生成一個鏡像的歷史命令docker tag # 為鏡像起一個別名

鏡像倉庫(registry)操作:

docker login # 登錄到一個registrydocker search # 從registry倉庫搜索鏡像docker pull # 從倉庫下載鏡像到本地docker push # 將一個鏡像push到registry倉庫中

2.5 簡單實踐操作

運行并進入容器操作:

docker run -i -t docker.io/1832990/centos6.5 /bin/bash

-t 表示在新容器內指定一個偽終端或終端;

-i表示允許我們對容器內的 (STDIN) 進行交互;

-d表示將容器在后臺運行; 

/bin/bash 。這將在容器內啟動 bash shell;

所以當容器(container)啟動之后,我們會獲取到一個命令提示符:

容器,Docker

在容器內我們安裝mysql并設置開機自啟動,將修改后的鏡像提交:

docker ps -l 查詢容器IDdocker commit -m "功能" -a "用戶信息" ID tag 提交修改后的鏡像

容器,Docker

docker inspect ID 查看詳細信息docker push ID 上傳docker鏡像

利用DockerFile創建鏡像

使用命令 docker build, 需要創建一個Dockerfile文件,其中包含一組指令來告訴 Docker 如何構建鏡像。

mkdir DockerFilecd DockerFilecat > Dockerfile <<EOFFROM 603dd3515fccMAINTAINER Docker xuelRUN yum install mysql mysql-server -yRUN mddir /etc/sysconfig/networkRUN /etc/init.d/mysqld startEOF

容器,Docker

docker build -t "centos6.8:mysqld" .

-t 制定repository 與tag

. 指定Dockerfile的路徑

注意一個鏡像不能超過 127 層

此外,還可以利用 ADD 命令復制本地文件到鏡像;

用 EXPOSE 命令來向外部開放端口;

用 CMD 命令來描述容器啟動后運行的程序等。

CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]

2.6 Dockerfile詳解

Dockerfile的指令是忽略大小寫的,建議使用大寫,使用 # 作為注釋,每一行只支持一條指令,每條指令可以攜帶多個參數。

Dockerfile的指令根據作用可以分為兩種,構建指令和設置指令。

構建指令:用于構建image,其指定的操作不會在運行image的容器上執行;

設置指令:用于設置image的屬性,其指定的操作將在運行image的容器中執行。

FROM(指定基礎image)

構建指令,必須指定且需要在Dockerfile其他指令的前面。后續的指令都依賴于該指令指定的image。FROM指令指定的基礎image可以是官方遠程倉庫中的,也可以位于本地倉庫。

該指令有兩種格式:

  • FROM <image> #指定基礎image為該image的最后修改的版本
  • FROM <image>:<tag> #指定基礎image為該image的一個tag版本。

MAINTAINER(用來指定鏡像創建者信息)

構建指令,用于將image的制作者相關的信息寫入到image中。當我們對該image執行docker inspect命令時,輸出中有相應的字段記錄該信息。

  • MAINTAINER<name>

RUN(安裝軟件用)

構建指令,RUN可以運行任何被基礎image支持的命令。如基礎image選擇了ubuntu,那么軟件管理部分只能使用ubuntu的命令。

  • RUN <command> (the command is run in a shell - `/bin/sh -c`)
  • RUN ["executable", "param1", "param2" ... ] (exec form)

CMD(設置container啟動時執行的操作)

設置指令,用于container啟動時指定的操作。該操作可以是執行自定義腳本,也可以是執行系統命令。該指令只能在文件中存在一次,如果有多個,則只執行最后一條。

  • CMD ["executable","param1","param2"] (like an exec, this is the preferred form)
  • CMD command param1 param2 (as a shell)

ENTRYPOINT指定的是一個可執行的腳本或者程序的路徑,該指定的腳本或者程序將會以param1和param2作為參數執行。所以如果CMD指令使用上面的形式,那么Dockerfile中必須要有配套的ENTRYPOINT。當Dockerfile指定了ENTRYPOINT,那么使用下面的格式:

  • CMD ["param1","param2"] (as default parameters to ENTRYPOINT)

ENTRYPOINT(設置container啟動時執行的操作)

設置指令,指定容器啟動時執行的命令,可以多次設置,但是只有最后一個有效。

  • ENTRYPOINT ["executable", "param1", "param2"] (like an exec, the preferred form)
  • ENTRYPOINT command param1 param2 (as a shell)

該指令的使用分為兩種情況,一種是獨自使用,另一種和CMD指令配合使用。
當獨自使用時,如果你還使用了CMD命令且CMD是一個完整的可執行的命令,那么CMD指令和ENTRYPOINT會互相覆蓋只有最后一個CMD或者ENTRYPOINT有效。

# CMD指令將不會被執行,只有ENTRYPOINT指令被執行 CMD echo “Hello, World!” ENTRYPOINT ls -l

另一種用法和CMD指令配合使用來指定ENTRYPOINT的默認參數,這時CMD指令不是一個完整的可執行命令,僅僅是參數部分;ENTRYPOINT指令只能使用JSON方式指定執行命令,而不能指定參數。

FROM ubuntu CMD ["-l"] ENTRYPOINT ["/usr/bin/ls"]

USER(設置container容器的用戶)

設置指令,設置啟動容器的用戶,默認是root用戶

# 指定memcached的運行用戶 ENTRYPOINT ["memcached"] USER daemon 或 ENTRYPOINT ["memcached", "-u", "daemon"]

EXPOSE(指定容器需要映射到宿主機器的端口)

設置指令,該指令會將容器中的端口映射成宿主機器中的某個端口。當你需要訪問容器的時候,可以不是用容器的IP地址而是使用宿主機器的IP地址和映射后的端口。要完成整個操作需要兩個步驟,首先在Dockerfile使用EXPOSE設置需要映射的容器端口,然后在運行容器的時候指定-p選項加上EXPOSE設置的端口,這樣EXPOSE設置的端口號會被隨機映射成宿主機器中的一個端口號。也可以指定需要映射到宿主機器的那個端口,這時要確保宿主機器上的端口號沒有被使用。EXPOSE指令可以一次設置多個端口號,相應的運行容器的時候,可以配套的多次使用-p選項。

# 映射一個端口 EXPOSE port1 # 相應的運行容器使用的命令 (主機(宿主)端口:容器端口)docker run -p port1 image  # 映射多個端口 EXPOSE port1 port2 port3 # 相應的運行容器使用的命令 docker run -p port1 -p port2 -p port3 image # 還可以指定需要映射到宿主機器上的某個端口號 docker run -p host_port1:port1 -p host_port2:port2 -p host_port3:port3 image

端口映射是docker比較重要的一個功能,原因在于我們每次運行容器的時候容器的IP地址不能指定而是在橋接網卡的地址范圍內隨機生成的。宿主機器的IP地址是固定的,我們可以將容器的端口的映射到宿主機器上的一個端口,免去每次訪問容器中的某個服務時都要查看容器的IP的地址。對于一個運行的容器,可以使用docker port加上容器中需要映射的端口和容器的ID來查看該端口號在宿主機器上的映射端口。

ENV(用于設置環境變量)

構建指令,在image中設置一個環境變量。

  • ENV<key><value>

設置了后,后續的RUN命令都可以使用,container啟動后,可以通過docker inspect查看這個環境變量,也可以通過在docker run --env key=value時設置或修改環境變量。

假如你安裝了JAVA程序,需要設置JAVA_HOME,那么可以在Dockerfile中這樣寫:

  • ENVJAVA_HOME/path/to/java/dirent

ADD(從src復制文件到container的dest路徑)

構建指令,所有拷貝到container中的文件和文件夾權限為0755,uid和gid為0;如果是一個目錄,那么會將該目錄下的所有文件添加到container中,不包括目錄;如果文件是可識別的壓縮格式,則docker會幫忙解壓縮(注意壓縮格式);如果<src>是文件且<dest>中不使用斜杠結束,則會將<dest>視為文件,<src>的內容會寫入<dest>;如果<src>是文件且<dest>中使用斜杠結束,則會<src>文件拷貝到<dest>目錄下。

  • ADD<src><dest>

<src> 是相對被構建的源目錄的相對路徑,可以是文件或目錄的路徑,也可以是一個遠程的文件url;
<dest> 是container中的絕對路徑

VOLUME(指定掛載點)

設置指令,使容器中的一個目錄具有持久化存儲數據的功能,該目錄可以被容器本身使用,也可以共享給其他容器使用。我們知道容器使用的是AUFS,這種文件系統不能持久化數據,當容器關閉后,所有的更改都會丟失。當容器中的應用有持久化數據的需求時可以在Dockerfile中使用該指令。

FROM base VOLUME ["/tmp/data"]

WORKDIR(切換目錄)

設置指令,可以多次切換(相當于cd命令),對RUN,CMD,ENTRYPOINT生效。

# 在 /p1/p2 下執行 vim a.txt WORKDIR /p1 WORKDIR p2 RUN vim a.txt

2.7 鏡像導入導出

容器,Docker

導出鏡像到本地:

容器,Docker

docker save -o centos6.5.tar centos6.5 或docker export f9c99092063c >centos6.5.tar

從本地將鏡像導入:

docker load --input centos6.5.tar 或 docker load < centos6.5.tar

容器,Docker

docker rm刪除已經終止的容器docker -f rm 可以刪除正在運行的容器

修改已經運行的后臺容器:

docker exec -it CONTAINER ID /bin/bash

容器,Docker

三、存儲

3.1數據盤

docker的鏡像使用一層一層文件組成的,docker的一些存儲引擎可以處理怎么樣存儲這些文件。

docker inspect centos   #查看容器詳細信息

信息下方的Layers,就是centos的文件,這些東西都是只讀的不能去修改,我們基于這個鏡像去創建的鏡像和容器也會共享這些文件層,而docker會在這些層上面去添加一個可讀寫的文件層。如果需要修改一些文件層里面的東西的話,docker會復制一份到這個可讀寫的文件層里面,如果刪除容器的話,那么也會刪除它對應的可讀寫的文件層的文件。

如果有些數據你想一直保存的話,比如:web服務器上面的日志,數據庫管理系統里面的數據,那么我們可以把這些數據放到data volumes數據盤里面。它上面的數據,即使把容器刪掉,也還是會永久保留。創建容器的時候,我們可以去指定數據盤。其實就是去指定一個特定的目錄。

docker run -i -t -v /mnt --name nginx docker.io/nginx /bin/bash

-v:制定掛載到容器內的目錄

容器,Docker

使用docker inspect 容器ID可以查看掛載目錄對應于宿主機的物理文件路徑

容器,Docker

同樣,我們可以使用將制定物理宿主機的目錄掛載到容器的制定目錄下:

將宿主機目錄掛載到容器內:

 

復制代碼代碼如下:
docker run -d -p 80:80 --name nginx -v /webdata/wordpress:/usr/share/nginx/html docker.io/sergeyzh/centos6-nginx

 

-d 后臺運行

--name 給運行的容器命名

-v 宿主機目錄:容器目錄 將宿主機目錄掛載在容器內

-p 宿主機端口:容器監聽端口 將容器內應用監聽端口映射到物理宿主機的特定端口上

容器,Docker

容器,Docker

映射多個物理目錄:(多寫幾個-v即可)

容器,Docker

容器,Docker

3.2 數據容器:

可以創建一個數據容器,也就是再創建容器是指定這個容器的數據盤,然后讓其他容器可以使用這個容器作為他們的數據盤,有點像繼承了這個數據容器指定的數據盤作為數據盤。

首先創建一個數據容器命名為newnginx

docker create -v /mnt -it --name newnginx docker.io/nginx /bin/bash

利用此數據容器容器運行一個容器nginx1,在數據目錄/mnt 下創建一個文件

docker run --volumes-from newnginx --name nginx1 -it docker.io/nginx /bin/bash

利用數據容器在創建一個容器nginx2,查看數據目錄下容器nginx1創建的文件依舊存在,同理在nginx2的/mnt下創建文件,其他基于數據容器運行的新容器也可以看到文件

容器,Docker

3.3 數據盤管理:

 

在刪除容器時,docker默認不會刪除其數據盤。

docker volume ls     #查看數據盤docker volume ls -f dangling=true  #查看未被容器使用的數據盤docker volume rm VOLUME NAME  #刪除數據盤

容器,Docker

如果想要刪除容器時,同時刪除掉其數據盤,那么可以使用-v參數。

docker rm -v newnginx

四、網絡

docker提供幾種網絡,它決定容器之間和外界和容器之間如何去相互通信。

docker network ls  #查看網絡

容器,Docker

當Docker進程啟動時,會在主機上創建一個名為docker0的虛擬網橋,此主機上啟動的Docker容器會連接到這個虛擬網橋上。虛擬網橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網絡中。從docker0子網中分配一個IP給容器使用,并設置docker0的IP地址為容器的默認網關。在主機上創建一對虛擬網卡veth pair設備,Docker將veth pair設備的一端放在新創建的容器中,并命名為eth0(容器的網卡),另一端放在主機中,以vethxxx這樣類似的名字命名,并將這個網絡設備加入到docker0網橋中。

4.1 bridge橋接網絡

除非創建容器的時候指定網絡,不然容器就會默認的使用橋接網絡。屬于這個網絡的容器之間可以相互通信,不過外界想要訪問到這個網絡的容器呢,需使用橋接網絡,有點像主機和容器之間的一座橋,對容器有一點隔離作用。實際是在iptables做了DNAT規則,實現端口轉發功能??梢允褂胕ptables -t nat -vnL查看。

4.2 host主機網絡

如果啟動容器的時候使用host模式,那么這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Network Namespace。容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口。但是,容器的其他方面,如文件系統、進程列表等還是和宿主機隔離的。只用這種網絡的容器會使用主機的網絡,這種網絡對外界是完全開放的,能夠訪問到主機,就能訪問到容器。

4.3 使用none模式

Docker容器擁有自己的Network Namespace,但是,并不為Docker容器進行任何網絡配置。也就是說,這個Docker容器沒有網卡、IP、路由等信息。需要我們自己為Docker容器添加網卡、配置IP等。使用此種網絡的容器會完全隔離。

4.4 簡單演示:

啟動兩個容器,查看其容器內部IP地址

 

復制代碼代碼如下:
for i in `docker ps |grep -v "CONTAINER"|awk '{print $1}'`;do docker inspect $i|grep 'IPAddress';done

 

查看橋接模式下主機內部容器之間和容器與宿主機直接均可正常通訊

容器,Docker

docker inspect 容器ID

容器,Docker

查看host創建的容器內部沒有IP地址,它使用的為宿主機的地址

docker run -d --net host docker.io/sergeyzh/centos6-nginx

容器,Docker

容器,Docker

查看host創建的容器內部沒有IP地址,它使用的為宿主機的地址

docker run -d --net none docker.io/sergeyzh/centos6-nginx

容器,Docker

4.5 容器端口:

如果想讓外界可以訪問到,基于bridge網絡創建的容器提供的服務,那你可以告訴Docker你要使用哪些接口。如果想查看鏡像會使用哪些端口,ExposedPorts,可以獲悉鏡像使用哪些端口。

docker run -d -p 80 docker.io/sergeyzh/centos6-nginx  docker port 09648b2ff7f6

-p 參數會在宿主機隨機映射一個高端口到容器內的指定端口

容器,Docker

 

復制代碼代碼如下:
docker run -d -p 80:80 docker.io/sergeyzh/centos6-nginx #將宿主機的80端口映射到容器的80端口

 

容器,Docker

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线资源网| 欧美日韩中文在线| 国产精品成人一区二区| 久久久久久久久久国产| 日韩av观看网址| 色综合久久久久久中文网| 欧美日韩国产综合新一区| 日韩经典中文字幕| 日韩a**站在线观看| 中文字幕亚洲综合久久筱田步美| 国产suv精品一区二区三区88区| 欧美性猛交xxxx黑人| 亚洲国产精品一区二区三区| 91精品国产自产在线观看永久| 国内精品视频一区| 亚洲精品美女久久久| 亚洲第一区中文99精品| 久久综合久久美利坚合众国| www欧美日韩| 亚洲欧美日韩国产中文专区| 精品久久久久久久中文字幕| 色综合91久久精品中文字幕| 中文字幕亚洲综合| 国产精品男女猛烈高潮激情| 久久久成人精品视频| 日本成人在线视频网址| 日韩一中文字幕| 中文字幕亚洲欧美日韩高清| 欧美人成在线视频| 在线激情影院一区| 亚洲成人激情图| 日韩亚洲成人av在线| 97视频色精品| 日本精品视频在线播放| 91精品在线观| 在线观看视频99| 亚洲天堂av网| 欧美寡妇偷汉性猛交| 亚洲欧美变态国产另类| 伊人伊人伊人久久| 亚洲精品国产精品国自产在线| 国产在线视频一区| 亚洲va欧美va国产综合久久| 亚洲人成电影网站色| 中文字幕成人在线| 欧美视频在线免费看| 51久久精品夜色国产麻豆| 久久天天躁夜夜躁狠狠躁2022| 成人免费在线视频网站| 欧美富婆性猛交| 精品国产福利在线| 日韩中文字幕第一页| 精品视频在线播放| 欧美日韩亚洲一区二区三区| 国产精品久久久久久久久久久新郎| 亚洲精品国产suv| 7m精品福利视频导航| 欧美在线免费视频| 国产91精品高潮白浆喷水| 国产精品黄页免费高清在线观看| 国产精品第七影院| 国产成人精品视频在线观看| 91av视频在线观看| 日韩精品亚洲元码| 欧美午夜无遮挡| 中文字幕欧美国内| 91精品视频在线播放| 欧美日韩免费区域视频在线观看| 日本aⅴ大伊香蕉精品视频| 国产亚洲精品美女| 久久人人爽人人爽人人片av高请| 亚洲色图激情小说| 国产精品爽爽爽| 精品久久久久久久久久久久久| 亚洲影视九九影院在线观看| 成人a在线观看| 久久偷看各类女兵18女厕嘘嘘| 日韩的一区二区| 亚洲国产另类 国产精品国产免费| 日韩欧美国产成人| 中国china体内裑精亚洲片| 97人人模人人爽人人喊中文字| 高跟丝袜欧美一区| 亚洲国产成人精品电影| 亚洲欧美另类自拍| 奇米一区二区三区四区久久| 亚洲成成品网站| 亚洲色图第三页| 亚洲自拍中文字幕| 欧美激情一区二区三区成人| 亚洲精品中文字幕av| 国产三级精品网站| 欧美成人免费视频| 国产成人精品免高潮费视频| 久久九九有精品国产23| 久久久综合免费视频| 欧美激情视频一区| 欧美日韩另类视频| 亚洲第一页在线| 亚洲bt欧美bt日本bt| 亚洲精品美女免费| 日本亚洲欧洲色| 视频在线观看一区二区| 亚洲一区二区在线| 久久久久久久久久久91| 日韩欧美在线国产| 欧美日韩在线视频一区| 中文字幕在线观看日韩| 欧美性色19p| 欧美大胆在线视频| 97超级碰碰人国产在线观看| 欧美国产一区二区三区| 精品在线欧美视频| 尤物九九久久国产精品的分类| 国产精品吊钟奶在线| 色综合老司机第九色激情| 亚洲www在线| 日韩人在线观看| 亚洲女人被黑人巨大进入al| 日韩av在线网址| 国产成人精品免高潮费视频| 日韩av一区在线观看| 国产精品ⅴa在线观看h| 欧美色图在线视频| 国产狼人综合免费视频| 久久精品国产69国产精品亚洲| 国产一区二区三区在线观看视频| 亚洲自拍在线观看| 亚洲精品日韩久久久| 久久九九全国免费精品观看| 91日韩在线视频| 亚洲欧美一区二区三区在线| 全色精品综合影院| 久久久最新网址| 国产成人久久精品| 欧美成年人视频网站欧美| 久久久999国产| 国产精品嫩草视频| 2019日本中文字幕| 国产精品99久久久久久白浆小说| 久久久久久成人| 国产精品免费一区二区三区都可以| 91久久久久久久一区二区| 岛国av一区二区三区| 一区二区三区高清国产| 影音先锋欧美精品| 亚洲一区二区三区久久| 国产精品自产拍在线观| 17婷婷久久www| 欧美激情亚洲国产| 欧美性xxxxx| 日韩精品视频免费| 亚洲精品欧美一区二区三区| 亚洲精品xxx| 国产精品www网站| 日韩中文字幕在线播放| 91在线观看欧美日韩| 57pao成人永久免费视频| 亚洲一区二区免费| 久久精品视频在线播放| 欧美丝袜美女中出在线| 成人免费激情视频| 成人有码在线播放| 日韩最新中文字幕电影免费看|