国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

Docker 學(xué)習(xí)文檔(知識(shí)結(jié)構(gòu)整理)

 更新時(shí)間:2016年11月03日 10:42:08   投稿:lqh  
這篇文章主要介紹了Docker 學(xué)習(xí)文檔的相關(guān)資料,需要的朋友可以參考下

一、Docker 簡(jiǎn)介

Docker 兩個(gè)主要部件:

Docker: 開源的容器虛擬化平臺(tái)Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平臺(tái) -- Docker Hub

Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式。Docker 客戶端會(huì)與 Docker 守護(hù)進(jìn)程進(jìn)行通信。Docker 守護(hù)進(jìn)程會(huì)處理復(fù)雜繁重的任務(wù),例如建立、運(yùn)行、發(fā)布你的 Docker 容器。Docker 客戶端和守護(hù)進(jìn)程可以運(yùn)行在同一個(gè)系統(tǒng)上,當(dāng)然你也可以使用 Docker 客戶端去連接一個(gè)遠(yuǎn)程的 Docker 守護(hù)進(jìn)程。Docker 客戶端和守護(hù)進(jìn)程之間通過 socket 或者 RESTful API 進(jìn)行通信。

非常詳細(xì)的 Docker 學(xué)習(xí)筆記

1.1 Docker 守護(hù)進(jìn)程

如上圖所示,Docker 守護(hù)進(jìn)程運(yùn)行在一臺(tái)主機(jī)上。用戶并不直接和守護(hù)進(jìn)程進(jìn)行交互,而是通過 Docker 客戶端間接和其通信。

1.2 Docker 客戶端

Docker 客戶端,實(shí)際上是 docker 的二進(jìn)制程序,是主要的用戶與 Docker 交互方式。它接收用戶指令并且與背后的 Docker 守護(hù)進(jìn)程通信,如此來回往復(fù)。

1.3 Docker 內(nèi)部

要理解 Docker 內(nèi)部構(gòu)建,需要理解以下三種部件:

Docker 鏡像 - Docker imagesDocker 倉庫 - Docker registeriesDocker 容器 - Docker containersDocker 鏡像

Docker 鏡像是 Docker 容器運(yùn)行時(shí)的只讀模板,每一個(gè)鏡像由一系列的層 (layers) 組成。Docker 使用 UnionFS 來將這些層聯(lián)合到單獨(dú)的鏡像中。UnionFS 允許獨(dú)立文件系統(tǒng)中的文件和文件夾(稱之為分支)被透明覆蓋,形成一個(gè)單獨(dú)連貫的文件系統(tǒng)。正因?yàn)橛辛诉@些層的存在,Docker 是如此的輕量。當(dāng)你改變了一個(gè) Docker 鏡像,比如升級(jí)到某個(gè)程序到新的版本,一個(gè)新的層會(huì)被創(chuàng)建。因此,不用替換整個(gè)原先的鏡像或者重新建立(在使用虛擬機(jī)的時(shí)候你可能會(huì)這么做),只是一個(gè)新 的層被添加或升級(jí)了?,F(xiàn)在你不用重新發(fā)布整個(gè)鏡像,只需要升級(jí),層使得分發(fā) Docker 鏡像變得簡(jiǎn)單和快速。

Docker 倉庫

Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。同樣的,Docker 倉庫也有公有和私有的概念。公有的 Docker 倉庫名字是 Docker Hub。Docker Hub 提供了龐大的鏡像集合供使用。這些鏡像可以是自己創(chuàng)建,或者在別人的鏡像基礎(chǔ)上創(chuàng)建。Docker 倉庫是 Docker 的分發(fā)部分。

Docker 容器

Docker 容器和文件夾很類似,一個(gè)Docker容器包含了所有的某個(gè)應(yīng)用運(yùn)行所需要的環(huán)境。每一個(gè) Docker 容器都是從 Docker 鏡像創(chuàng)建的。Docker 容器可以運(yùn)行、開始、停止、移動(dòng)和刪除。每一個(gè) Docker 容器都是獨(dú)立和安全的應(yīng)用平臺(tái),Docker 容器是 Docker 的運(yùn)行部分。

1.4 libcontainer

Docker 從 0.9 版本開始使用 libcontainer 替代 lxc,libcontainer 和 Linux 系統(tǒng)的交互圖如下:

非常詳細(xì)的 Docker 學(xué)習(xí)筆記

圖片來源: Docker 0.9: introducing execution drivers and libcontainer

1.5 命名空間「Namespaces」

pid namespace

不同用戶的進(jìn)程就是通過 pid namespace 隔離開的,且不同 namespace 中可以有相同 PID。具有以下特征:

每個(gè) namespace 中的 pid 是有自己的 pid=1 的進(jìn)程(類似 /sbin/init 進(jìn)程)

每個(gè) namespace 中的進(jìn)程只能影響自己的同一個(gè) namespace 或子 namespace 中的進(jìn)程

因?yàn)?/proc 包含正在運(yùn)行的進(jìn)程,因此在 container 中的 pseudo-filesystem 的 /proc 目錄只能看到自己 namespace 中的進(jìn)程

因?yàn)?namespace 允許嵌套,父 namespace 可以影響子 namespace 的進(jìn)程,所以子 namespace 的進(jìn)程可以在父 namespace 中看到,但是具有不同的 pid

參考文檔:Introduction to Linux namespaces – Part 3: PID

mnt namespace

類似 chroot,將一個(gè)進(jìn)程放到一個(gè)特定的目錄執(zhí)行。mnt namespace 允許不同 namespace 的進(jìn)程看到的文件結(jié)構(gòu)不同,這樣每個(gè) namespace 中的進(jìn)程所看到的文件目錄就被隔離開了。同 chroot 不同,每個(gè) namespace 中的 container 在 /proc/mounts 的信息只包含所在 namespace 的 mount point。

net namespace

網(wǎng)絡(luò)隔離是通過 net namespace 實(shí)現(xiàn)的, 每個(gè) net namespace 有獨(dú)立的 network devices, IP addresses, IP routing tables, /proc/net 目錄。這樣每個(gè) container 的網(wǎng)絡(luò)就能隔離開來。 docker 默認(rèn)采用 veth 的方式將 container 中的虛擬網(wǎng)卡同 host 上的一個(gè) docker bridge 連接在一起。

參考文檔:Introduction to Linux namespaces – Part 5: NET

uts namespace

UTS ("UNIX Time-sharing System") namespace 允許每個(gè) container 擁有獨(dú)立的 hostname 和 domain name, 使其在網(wǎng)絡(luò)上可以被視作一個(gè)獨(dú)立的節(jié)點(diǎn)而非 Host 上的一個(gè)進(jìn)程。

參考文檔:Introduction to Linux namespaces – Part 1: UTS

ipc namespace

container 中進(jìn)程交互還是采用 Linux 常見的進(jìn)程間交互方法 (interprocess communication - IPC), 包括常見的信號(hào)量、消息隊(duì)列和共享內(nèi)存。然而同 VM 不同,container 的進(jìn)程間交互實(shí)際上還是 host 上具有相同 pid namespace 中的進(jìn)程間交互,因此需要在IPC資源申請(qǐng)時(shí)加入 namespace 信息 - 每個(gè) IPC 資源有一個(gè)唯一的 32bit ID。

參考文檔:Introduction to Linux namespaces – Part 2: IPC

user namespace

每個(gè) container 可以有不同的 user 和 group id, 也就是說可以以 container 內(nèi)部的用戶在 container 內(nèi)部執(zhí)行程序而非 Host 上的用戶。

有了以上 6 種 namespace 從進(jìn)程、網(wǎng)絡(luò)、IPC、文件系統(tǒng)、UTS 和用戶角度的隔離,一個(gè) container 就可以對(duì)外展現(xiàn)出一個(gè)獨(dú)立計(jì)算機(jī)的能力,并且不同 container 從 OS 層面實(shí)現(xiàn)了隔離。 然而不同 namespace 之間資源還是相互競(jìng)爭(zhēng)的,仍然需要類似 ulimit 來管理每個(gè) container 所能使用的資源 - cgroup。

ReferenceDocker Getting Start: Related KnowledgeDocker 介紹以及其相關(guān)術(shù)語、底層原理和技術(shù)

1.6 資源配額「cgroups」

cgroups 實(shí)現(xiàn)了對(duì)資源的配額和度量。 cgroups 的使用非常簡(jiǎn)單,提供類似文件的接口,在 /cgroup 目錄下新建一個(gè)文件夾即可新建一個(gè) group,在此文件夾中新建 task 文件,并將 pid 寫入該文件,即可實(shí)現(xiàn)對(duì)該進(jìn)程的資源控制。具體的資源配置選項(xiàng)可以在該文件夾中新建子 subsystem ,{子系統(tǒng)前綴}.{資源項(xiàng)} 是典型的配置方法, 如 memory.usageinbytes 就定義了該 group 在 subsystem memory 中的一個(gè)內(nèi)存限制選項(xiàng)。 另外,cgroups 中的 subsystem 可以隨意組合,一個(gè) subsystem 可以在不同的 group 中,也可以一個(gè) group 包含多個(gè) subsystem - 也就是說一個(gè) subsystem。

memory內(nèi)存相關(guān)的限制

cpu在 cgroup 中,并不能像硬件虛擬化方案一樣能夠定義 CPU 能力,但是能夠定義 CPU 輪轉(zhuǎn)的優(yōu)先級(jí),因此具有較高 CPU 優(yōu)先級(jí)的進(jìn)程會(huì)更可能得到 CPU 運(yùn)算。 通過將參數(shù)寫入 cpu.shares ,即可定義改 cgroup 的 CPU 優(yōu)先級(jí) - 這里是一個(gè)相對(duì)權(quán)重,而非絕對(duì)值blkioblock IO 相關(guān)的統(tǒng)計(jì)和限制,byte/operation 統(tǒng)計(jì)和限制 (IOPS 等),讀寫速度限制等,但是這里主要統(tǒng)計(jì)的都是同步 IO

devices設(shè)備權(quán)限限制

參考文檔:how to use cgroup

二、Docker 安裝

docker 的相關(guān)安裝方法這里不作介紹,具體安裝參考 官檔

獲取當(dāng)前 docker 版本

$ sudo docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa/1.3.2
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa/1.3.2

三、Docker 基礎(chǔ)用法

Docker HUB : Docker鏡像首頁,包括官方鏡像和其它公開鏡像

因?yàn)閲榈脑?,國?nèi)下載 Docker HUB 官方的相關(guān)鏡像比較慢,可以使用 docker.cn 鏡像,鏡像保持和官方一致,關(guān)鍵是速度塊,推薦使用。

3.1 Search images

$ sudo docker search ubuntu

3.2 Pull images

$ sudo docker pull ubuntu # 獲取 ubuntu 官方鏡像 $ sudo docker images # 查看當(dāng)前鏡像列表

3.3 Running an interactive shell

$ sudo docker run -i -t ubuntu:14.04 /bin/bash

docker run - 運(yùn)行一個(gè)容器-t - 分配一個(gè)(偽)tty (link is external)-i - 交互模式 (so we can interact with it)ubuntu:14.04 - 使用 ubuntu 基礎(chǔ)鏡像 14.04/bin/bash - 運(yùn)行命令 bash shell

注: ubuntu 會(huì)有多個(gè)版本,通過指定 tag 來啟動(dòng)特定的版本 [image]:[tag]

$ sudo docker ps # 查看當(dāng)前運(yùn)行的容器, ps -a 列出當(dāng)前系統(tǒng)所有的容器 CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES
6c9129e9df10  ubuntu:14.04  /bin/bash 6 minutes ago  Up 6 minutes       cranky_babbage

3.4 相關(guān)快捷鍵退出:

Ctrl-Dorexit

detach:Ctrl-P + Ctrl-Q

attach:docker attach CONTAINER-ID

四、Docker 命令幫助

4.1 dockerhelp

docker command

$ sudo docker # docker 命令幫助

Commands:
 attach Attach to a running container     # 當(dāng)前 shell 下 attach 連接指定運(yùn)行鏡像
 build  Build an image from a Dockerfile    # 通過 Dockerfile 定制鏡像
 commit Create a new image from a container's changes # 提交當(dāng)前容器為新的鏡像
 cp  Copy files/folders from the containers filesystem to the host path
    # 從容器中拷貝指定文件或者目錄到宿主機(jī)中
 create Create a new container      # 創(chuàng)建一個(gè)新的容器,同 run,但不啟動(dòng)容器
 diff  Inspect changes on a container's filesystem # 查看 docker 容器變化
 events Get real time events from the server   # 從 docker 服務(wù)獲取容器實(shí)時(shí)事件
 exec  Run a command in an existing container  # 在已存在的容器上運(yùn)行命令
 export Stream the contents of a container as a tar archive 
    # 導(dǎo)出容器的內(nèi)容流作為一個(gè) tar 歸檔文件[對(duì)應(yīng) import ]
 history Show the history of an image     # 展示一個(gè)鏡像形成歷史
 images List images         # 列出系統(tǒng)當(dāng)前鏡像
 import Create a new filesystem image from the contents of a tarball 
    # 從tar包中的內(nèi)容創(chuàng)建一個(gè)新的文件系統(tǒng)映像[對(duì)應(yīng) export]
 info  Display system-wide information    # 顯示系統(tǒng)相關(guān)信息
 inspect Return low-level information on a container # 查看容器詳細(xì)信息
 kill  Kill a running container      # kill 指定 docker 容器
 load  Load an image from a tar archive    # 從一個(gè) tar 包中加載一個(gè)鏡像[對(duì)應(yīng) save]
 login  Register or Login to the docker registry server 
    # 注冊(cè)或者登陸一個(gè) docker 源服務(wù)器
 logout Log out from a Docker registry server   # 從當(dāng)前 Docker registry 退出
 logs  Fetch the logs of a container     # 輸出當(dāng)前容器日志信息
 port  Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
    # 查看映射端口對(duì)應(yīng)的容器內(nèi)部源端口
 pause  Pause all processes within a container  # 暫停容器
 ps  List containers        # 列出容器列表
 pull  Pull an image or a repository from the docker registry server
    # 從docker鏡像源服務(wù)器拉取指定鏡像或者庫鏡像
 push  Push an image or a repository to the docker registry server
    # 推送指定鏡像或者庫鏡像至docker源服務(wù)器
 restart Restart a running container     # 重啟運(yùn)行的容器
 rm  Remove one or more containers     # 移除一個(gè)或者多個(gè)容器
 rmi  Remove one or more images     
    # 移除一個(gè)或多個(gè)鏡像[無容器使用該鏡像才可刪除,否則需刪除相關(guān)容器才可繼續(xù)或 -f 強(qiáng)制刪除]
 run  Run a command in a new container
    # 創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令
 save  Save an image to a tar archive    # 保存一個(gè)鏡像為一個(gè) tar 包[對(duì)應(yīng) load]
 search Search for an image on the Docker Hub   # 在 docker hub 中搜索鏡像
 start  Start a stopped containers     # 啟動(dòng)容器
 stop  Stop a running containers      # 停止容器
 tag  Tag an image into a repository    # 給源中鏡像打標(biāo)簽
 top  Lookup the running processes of a container # 查看容器中運(yùn)行的進(jìn)程信息
 unpause Unpause a paused container     # 取消暫停容器
 version Show the docker version information   # 查看 docker 版本號(hào)
 wait  Block until a container stops, then print its exit code 
    # 截取容器停止時(shí)的退出狀態(tài)值
Run 'docker COMMAND --help' for more information on a command.

docker option

Usage of docker:
 --api-enable-cors=false    Enable CORS headers in the remote API      # 遠(yuǎn)程 API 中開啟 CORS 頭
 -b, --bridge=""      Attach containers to a pre-existing network bridge   # 橋接網(wǎng)絡(luò)
           use 'none' to disable container networking
 --bip=""        Use this CIDR notation address for the network bridge's IP, not compatible with -b
           # 和 -b 選項(xiàng)不兼容,具體沒有測(cè)試過
 -d, --daemon=false      Enable daemon mode           # daemon 模式
 -D, --debug=false      Enable debug mode           # debug 模式
 --dns=[]        Force docker to use specific DNS servers     # 強(qiáng)制 docker 使用指定 dns 服務(wù)器
 --dns-search=[]      Force Docker to use specific DNS search domains   # 強(qiáng)制 docker 使用指定 dns 搜索域
 -e, --exec-driver="native"    Force the docker runtime to use a specific exec driver  # 強(qiáng)制 docker 運(yùn)行時(shí)使用指定執(zhí)行驅(qū)動(dòng)器
 --fixed-cidr=""      IPv4 subnet for fixed IPs (ex: 10.20.0.0/16)
           this subnet must be nested in the bridge subnet (which is defined by -b or --bip)
 -G, --group="docker"     Group to assign the unix socket specified by -H when running in daemon mode
           use '' (the empty string) to disable setting of a group
 -g, --graph="/var/lib/docker"   Path to use as the root of the docker runtime    # 容器運(yùn)行的根目錄路徑
 -H, --host=[]       The socket(s) to bind to in daemon mode     # daemon 模式下 docker 指定綁定方式[tcp or 本地 socket]
           specified using one or more tcp://host:port, unix:///path/to/socket, fd://* or fd://socketfd.
 --icc=true        Enable inter-container communication      # 跨容器通信
 --insecure-registry=[]     Enable insecure communication with specified registries (no certificate verification for HTTPS and enable HTTP fallback) (e.g., localhost:5000 or 10.20.0.0/16)
 --ip="0.0.0.0"       Default IP address to use when binding container ports  # 指定監(jiān)聽地址,默認(rèn)所有 ip
 --ip-forward=true      Enable net.ipv4.ip_forward         # 開啟轉(zhuǎn)發(fā)
 --ip-masq=true       Enable IP masquerading for bridge's IP range
 --iptables=true      Enable Docker's addition of iptables rules     # 添加對(duì)應(yīng) iptables 規(guī)則
 --mtu=0        Set the containers network MTU        # 設(shè)置網(wǎng)絡(luò) mtu
           if no value is provided: default to the default route MTU or 1500 if no default route is available
 -p, --pidfile="/var/run/docker.pid" Path to use for daemon PID file       # 指定 pid 文件位置
 --registry-mirror=[]     Specify a preferred Docker registry mirror     
 -s, --storage-driver=""    Force the docker runtime to use a specific storage driver # 強(qiáng)制 docker 運(yùn)行時(shí)使用指定存儲(chǔ)驅(qū)動(dòng)
 --selinux-enabled=false    Enable selinux support          # 開啟 selinux 支持
 --storage-opt=[]      Set storage driver options         # 設(shè)置存儲(chǔ)驅(qū)動(dòng)選項(xiàng)
 --tls=false       Use TLS; implied by tls-verify flags      # 開啟 tls
 --tlscacert="/root/.docker/ca.pem"  Trust only remotes providing a certificate signed by the CA given here
 --tlscert="/root/.docker/cert.pem"  Path to TLS certificate file        # tls 證書文件位置
 --tlskey="/root/.docker/key.pem"  Path to TLS key file          # tls key 文件位置
 --tlsverify=false      Use TLS and verify the remote (daemon: verify client, client: verify daemon) # 使用 tls 并確認(rèn)遠(yuǎn)程控制主機(jī)
 -v, --version=false     Print version information and quit       # 輸出 docker 版本信息

4.2 docker search

$ sudo docker search --help

Usage: docker search TERM

Search the Docker Hub for images # 從 Docker Hub 搜索鏡像 --automated=false Only show automated builds
 --no-trunc=false Don't truncate output
 -s, --stars=0 Only displays with at least xxx stars

示例:

$ sudo docker search -s 100 ubuntu # 查找 star 數(shù)至少為 100 的鏡像,找出只有官方鏡像 start 數(shù)超過 100,默認(rèn)不加 s 選項(xiàng)找出所有相關(guān) ubuntu 鏡像 NAME  DESCRIPTION     STARS  OFFICIAL AUTOMATED
ubuntu Official Ubuntu base image 425 [OK] 

4.3 docker info

$ sudo docker info 
Containers: 1 # 容器個(gè)數(shù) Images: 22 # 鏡像個(gè)數(shù) Storage Driver: devicemapper # 存儲(chǔ)驅(qū)動(dòng) Pool Name: docker-8:17-3221225728-pool
 Pool Blocksize: 65.54 kB
 Data file: /data/docker/devicemapper/devicemapper/data
 Metadata file: /data/docker/devicemapper/devicemapper/metadata
 Data Space Used: 1.83 GB
 Data Space Total: 107.4 GB
 Metadata Space Used: 2.191 MB
 Metadata Space Total: 2.147 GB
 Library Version: 1.02.84-RHEL7 (2014-03-26) Execution Driver: native-0.2 # 存儲(chǔ)驅(qū)動(dòng) Kernel Version: 3.10.0-123.el7.x86_64
Operating System: CentOS Linux 7 (Core) 

4.4 docker pull && docker push

$ sudo docker pull --help # pull 拉取鏡像 Usage: docker pull [OPTIONS] NAME[:TAG] Pull an image or a repository from the registry

 -a, --all-tags=false Download all tagged images in the repository $ sudo docker push # push 推送指定鏡像 Usage: docker push NAME[:TAG] Push an image or a repository to the registry

示例:

$ sudo docker pull ubuntu # 下載官方 ubuntu docker 鏡像,默認(rèn)下載所有 ubuntu 官方庫鏡像 
$ sudo docker pull ubuntu:14.04 # 下載指定版本 ubuntu 官方鏡像 
$ sudo docker push 192.168.0.100:5000/ubuntu # 推送鏡像庫到私有源[可注冊(cè) docker 官方賬戶,推送到官方自有賬戶] $ sudo docker push 192.168.0.100:5000/ubuntu:14.04 # 推送指定鏡像到私有源 

4.5 docker images

列出當(dāng)前系統(tǒng)鏡像

$ sudo docker images --help

Usage: docker images [OPTIONS] [NAME] List images

 -a, --all=false Show all images (by default filter out the intermediate image layers) # -a 顯示當(dāng)前系統(tǒng)的所有鏡像,包括過渡層鏡像,默認(rèn) docker images 顯示最終鏡像,不包括過渡層鏡像 -f, --filter=[] Provide filter values (i.e. 'dangling=true') --no-trunc=false Don't truncate output
 -q, --quiet=false Only show numeric IDs

示例:

$ sudo docker images # 顯示當(dāng)前系統(tǒng)鏡像,不包括過渡層鏡像 $ sudo docker images -a # 顯示當(dāng)前系統(tǒng)所有鏡像,包括過渡層鏡像 $ sudo docker images ubuntu # 顯示當(dāng)前系統(tǒng) docker ubuntu 庫中的所有鏡像 REPOSITORY     TAG     IMAGE ID   CREATED    VIRTUAL SIZE
ubuntu      12.04    ebe4be4dd427 4 weeks ago   210.6 MB
ubuntu      14.04    e54ca5efa2e9 4 weeks ago   276.5 MB
ubuntu      14.04-ssh   6334d3ac099a 7 weeks ago   383.2 MB

4.6 docker rmi

刪除一個(gè)或者多個(gè)鏡像

$ sudo docker rmi --help

Usage: docker rmi IMAGE [IMAGE...] Remove one or more images

 -f, --force=false Force removal of the image # 強(qiáng)制移除鏡像不管是否有容器使用該鏡像 --no-prune=false Do not delete untagged parents # 不要?jiǎng)h除未標(biāo)記的父鏡像 

4.7 docker run

$ sudo docker run --help

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container

 -a, --attach=[] Attach to stdin, stdout or stderr.
 -c, --cpu-shares=0 CPU shares (relative weight) # 設(shè)置 cpu 使用權(quán)重 --cap-add=[] Add Linux capabilities
 --cap-drop=[] Drop Linux capabilities
 --cidfile="" Write the container ID to the file # 把容器 id 寫入到指定文件 --cpuset="" CPUs in which to allow execution (0-3, 0,1) # cpu 綁定 -d, --detach=false Detached mode: Run container in the background, print new container id # 后臺(tái)運(yùn)行容器 --device=[] Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc) --dns=[] Set custom dns servers # 設(shè)置 dns --dns-search=[] Set custom dns search domains # 設(shè)置 dns 域搜索 -e, --env=[] Set environment variables # 定義環(huán)境變量 --entrypoint="" Overwrite the default entrypoint of the image # ? --env-file=[] Read in a line delimited file of ENV variables # 從指定文件讀取變量值 --expose=[] Expose a port from the container without publishing it to your host # 指定對(duì)外提供服務(wù)端口 -h, --hostname="" Container host name # 設(shè)置容器主機(jī)名 -i, --interactive=false Keep stdin open even if not attached # 保持標(biāo)準(zhǔn)輸出開啟即使沒有 attached --link=[] Add link to another container (name:alias) # 添加鏈接到另外一個(gè)容器 --lxc-conf=[] (lxc exec-driver only) Add custom lxc options --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" -m, --memory="" Memory limit (format: <number><optional unit>, where unit = b, k, m or g) # 內(nèi)存限制 --name="" Assign a name to the container # 設(shè)置容器名 --net="bridge" Set the Network mode for the container # 設(shè)置容器網(wǎng)絡(luò)模式 'bridge': creates a new network stack for the container on the docker bridge 'none': no networking for this container 'container:<name|id>': reuses another container network stack 'host': use the host network stack inside the container. Note: the host mode gives the container full access to local system services such as D-bus and is therefore considered insecure.
 -P, --publish-all=false Publish all exposed ports to the host interfaces # 自動(dòng)映射容器對(duì)外提供服務(wù)的端口 -p, --publish=[] Publish a container's port to the host    # 指定端口映射 format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort (use 'docker port' to see the actual mapping) --privileged=false Give extended privileges to this container # 提供更多的權(quán)限給容器 --restart="" Restart policy to apply when a container exits (no, on-failure[:max-retry], always) --rm=false Automatically remove the container when it exits (incompatible with -d) # 如果容器退出自動(dòng)移除和 -d 選項(xiàng)沖突 --security-opt=[] Security Options
 --sig-proxy=true Proxify received signals to the process (even in non-tty mode). SIGCHLD is not proxied.
 -t, --tty=false Allocate a pseudo-tty # 分配偽終端 -u, --user="" Username or UID # 指定運(yùn)行容器的用戶 uid 或者用戶名 -v, --volume=[] Bind mount a volume (e.g., from the host: -v /host:/container, from docker: -v /container) # 掛載卷 --volumes-from=[] Mount volumes from the specified container(s) # 從指定容器掛載卷 -w, --workdir="" Working directory inside the container # 指定容器工作目錄 

示例:

$ sudo docker images ubuntu
REPOSITORY   TAG     IMAGE ID   CREATED    VIRTUAL SIZE
ubuntu    14.04    e54ca5efa2e9 4 weeks ago   276.5 MB
... ... $ sudo docker run -t -i -c 100 -m 512MB -h test1 -d --name="docker_test1" ubuntu /bin/bash # 創(chuàng)建一個(gè) cpu 優(yōu)先級(jí)為 100,內(nèi)存限制 512MB,主機(jī)名為 test1,名為 docker_test1 后臺(tái)運(yùn)行 bash 的容器 a424ca613c9f2247cd3ede95adfbaf8d28400cbcb1d5f9b69a7b56f97b2b52e5 $ sudo docker ps 
CONTAINER ID  IMAGE   COMMAND   CREATED    STATUS    PORTS  NAMES
a424ca613c9f  ubuntu:14.04 /bin/bash 6 seconds ago  Up 5 seconds     docker_test1 $ sudo docker attach docker_test1
root@test1:/# pwd /
root@test1:/# exit exit 

關(guān)于cpu優(yōu)先級(jí):

By default all groups have 1024 shares. A group with 100 shares will get a ~10% portion of the CPU time -archlinux cgroups

4.8 docker start|stop|kill... ...

dockerstart|stop|kill|restart|pause|unpause|rm|commit|inspect|logs

docker start CONTAINER [CONTAINER...]# 運(yùn)行一個(gè)或多個(gè)停止的容器

docker stop CONTAINER [CONTAINER...]
# 停掉一個(gè)或多個(gè)運(yùn)行的容器-t選項(xiàng)可指定超時(shí)時(shí)間

docker kill [OPTIONS] CONTAINER [CONTAINER...]# 默認(rèn) kill 發(fā)送 SIGKILL 信號(hào)-s可以指定發(fā)送 kill 信號(hào)類型

docker restart [OPTIONS] CONTAINER [CONTAINER...]# 重啟一個(gè)或多個(gè)運(yùn)行的容器-t選項(xiàng)可指定超時(shí)時(shí)間

docker pause CONTAINER# 暫停一個(gè)容器,方便 commitdocker unpause CONTAINER# 繼續(xù)暫停的容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 移除一個(gè)或多個(gè)容器

-f, --force=false Force removal of running container

-l, --link=false Remove the specified link and not the underlying container

-v, --volumes=false Remove the volumes associated with the container

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# 提交指定容器為鏡像

-a, --author="" Author (e.g., "John Hannibal Smith hannibal@a-team.com")

-m, --message="" Commit message

-p, --pause=true Pause container during commit# 默認(rèn) commit 是暫停狀態(tài)

docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE...]

# 查看容器或者鏡像的詳細(xì)信息docker logs CONTAINER# 輸出指定容器日志信息

-f, --follow=false Follow log output# 類似 tail -f

-t, --timestamps=false Show timestamps

--tail="all" Output the specified number of lines at the end of logs (defaults to all logs)

參考文檔:Docker Run Reference

4.9 Docker 1.3 新增特性和命令Digital Signature Verification

Docker 1.3 版本將使用數(shù)字簽名自動(dòng)驗(yàn)證所有官方庫的來源和完整性,如果一個(gè)官方鏡像被篡改或者被破壞,目前 Docker 只會(huì)對(duì)這種情況發(fā)出警告而并不阻止容器的運(yùn)行。

docker exec --help

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] Run a command in an existing container

 -d, --detach=false Detached mode: run command in the background
 -i, --interactive=false Keep STDIN open even if not attached
 -t, --tty=false Allocate a pseudo-TTY

為了簡(jiǎn)化調(diào)試,可以使用docker exec命令通過 Docker API 和 CLI 在運(yùn)行的容器上運(yùn)行程序。

$ docker exec -it ubuntu_bash bash

上例將在容器 ubuntu_bash 中創(chuàng)建一個(gè)新的 Bash 會(huì)話。

Tune container lifecycles withdocker create

我們可以通過docker run <image name>命令創(chuàng)建一個(gè)容器并運(yùn)行其中的程序,因?yàn)橛泻芏嘤脩粢髣?chuàng)建容器的時(shí)候不啟動(dòng)容器,所以docker create應(yīng)運(yùn)而生了。

$ docker create -t -i fedora bash6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752

上例創(chuàng)建了一個(gè)可寫的容器層 (并且打印出容器 ID),但是并不運(yùn)行它,可以使用以下命令運(yùn)行該容器:

$ docker start -a -i 6d8af538ec5bash-4.2#

Security Options

通過--security-opt選項(xiàng),運(yùn)行容器時(shí)用戶可自定義 SELinux 和 AppArmor 卷標(biāo)和配置。

$ docker run --security-opt label:type:svirt_apache -i -t centos \ bash

上例只允許容器監(jiān)聽在 Apache 端口,這個(gè)選項(xiàng)的好處是用戶不需要運(yùn)行 docker 的時(shí)候指定--privileged選項(xiàng),降低安全風(fēng)險(xiǎn)。

參考文檔:Docker 1.3: signed images, process injection, security options, Mac shared directories

4.10 Docker 1.5 新特性

參考文檔:Docker 1.5 新特性

五、Docker 端口映射

# Find IP address of container with ID <container_id> 通過容器 id 獲取 ip $ sudo docker inspect <container_id> | grep IPAddress | cut -d '"' -f 4

無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問不到的。此外,除了端口只能本地訪問外,對(duì)于容器的另外一個(gè)問題是這些 ip 在容器每次啟動(dòng)的時(shí)候都會(huì)改變。

Docker 解決了容器的這兩個(gè)問題,并且給容器內(nèi)部服務(wù)的訪問提供了一個(gè)簡(jiǎn)單而可靠的方法。Docker 通過端口綁定主機(jī)系統(tǒng)的接口,允許非本地客戶端訪問容器內(nèi)部運(yùn)行的服務(wù)。為了簡(jiǎn)便的使得容器間通信,Docker 提供了這種連接機(jī)制。

5.1 自動(dòng)映射端口

-P使用時(shí)需要指定--expose選項(xiàng),指定需要對(duì)外提供服務(wù)的端口

$ sudo docker run -t -P --expose 22 --name server ubuntu:14.04

使用docker run -P自動(dòng)綁定所有對(duì)外提供服務(wù)的容器端口,映射的端口將會(huì)從沒有使用的端口池中 (49000..49900) 自動(dòng)選擇,你可以通過docker ps、docker inspect <container_id>或者docker port <container_id> <port>確定具體的綁定信息。

5.2 綁定端口到指定接口

基本語法

$ sudo docker run -p [([<host_interface>:[host_port]])|(<host_port>):]<container_port>[/udp] <image> <cmd>

默認(rèn)不指定綁定 ip 則監(jiān)聽所有網(wǎng)絡(luò)接口。

綁定 TCP 端口

# Bind TCP port 8080 of the container to TCP port 80 on 127.0.0.1 of the host machine.
 $ sudo docker run -p 127.0.0.1:80:8080 <image> <cmd> 
# Bind TCP port 8080 of the container to a dynamically allocated TCP port on 127.0.0.1 of the host machine. 
$ sudo docker run -p 127.0.0.1::8080 <image> <cmd> 
# Bind TCP port 8080 of the container to TCP port 80 on all available interfaces of the host machine.
 $ sudo docker run -p 80:8080 <image> <cmd> 
# Bind TCP port 8080 of the container to a dynamically allocated TCP port on all available interfaces 
$ sudo docker run -p 8080 <image> <cmd>

綁定 UDP 端口

# Bind UDP port 5353 of the container to UDP port 53 on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1:53:5353/udp <image> <cmd>

六、Docker 網(wǎng)絡(luò)配置

非常詳細(xì)的 Docker 學(xué)習(xí)筆記

圖: Docker - container and lightweight virtualization

Dokcer 通過使用 Linux 橋接提供容器之間的通信,docker0 橋接接口的目的就是方便 Docker 管理。當(dāng) Docker daemon 啟動(dòng)時(shí)需要做以下操作:

creates the docker0 bridge if not present

# 如果 docker0 不存在則創(chuàng)建

searches for an IP address range which doesn't overlap with an existing route

# 搜索一個(gè)與當(dāng)前路由不沖突的 ip 段

picks an IP in the selected range

# 在確定的范圍中選擇 ip

assigns this IP to the docker0 bridge

# 綁定 ip 到 docker06.1 Docker 四種網(wǎng)絡(luò)模式

四種網(wǎng)絡(luò)模式摘自 Docker 網(wǎng)絡(luò)詳解及 pipework 源碼解讀與實(shí)踐

docker run 創(chuàng)建 Docker 容器時(shí),可以用 --net 選項(xiàng)指定容器的網(wǎng)絡(luò)模式,Docker 有以下 4 種網(wǎng)絡(luò)模式:

host 模式,使用 --net=host 指定。

container 模式,使用 --net=container:NAMEorID 指定。

none 模式,使用 --net=none 指定。

bridge 模式,使用 --net=bridge 指定,默認(rèn)設(shè)置

host 模式

如果啟動(dòng)容器的時(shí)候使用 host 模式,那么這個(gè)容器將不會(huì)獲得一個(gè)獨(dú)立的 Network Namespace,而是和宿主機(jī)共用一個(gè) Network Namespace。容器將不會(huì)虛擬出自己的網(wǎng)卡,配置自己的 IP 等,而是使用宿主機(jī)的 IP 和端口。

例如,我們?cè)?10.10.101.105/24 的機(jī)器上用 host 模式啟動(dòng)一個(gè)含有 web 應(yīng)用的 Docker 容器,監(jiān)聽 tcp 80 端口。當(dāng)我們?cè)谌萜髦袌?zhí)行任何類似 ifconfig 命令查看網(wǎng)絡(luò)環(huán)境時(shí),看到的都是宿主機(jī)上的信息。而外界訪問容器中的應(yīng)用,則直接使用 10.10.101.105:80 即可,不用任何 NAT 轉(zhuǎn)換,就如直接跑在宿主機(jī)中一樣。但是,容器的其他方面,如文件系統(tǒng)、進(jìn)程列表等還是和宿主機(jī)隔離的。

container 模式

這個(gè)模式指定新創(chuàng)建的容器和已經(jīng)存在的一個(gè)容器共享一個(gè) Network Namespace,而不是和宿主機(jī)共享。新創(chuàng)建的容器不會(huì)創(chuàng)建自己的網(wǎng)卡,配置自己的 IP,而是和一個(gè)指定的容器共享 IP、端口范圍等。同樣,兩個(gè)容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng)、進(jìn)程列表等還是隔離的。兩個(gè)容器的進(jìn)程可以通過 lo 網(wǎng)卡設(shè)備通信。

none模式

這個(gè)模式和前兩個(gè)不同。在這種模式下,Docker 容器擁有自己的 Network Namespace,但是,并不為 Docker容器進(jìn)行任何網(wǎng)絡(luò)配置。也就是說,這個(gè) Docker 容器沒有網(wǎng)卡、IP、路由等信息。需要我們自己為 Docker 容器添加網(wǎng)卡、配置 IP 等。

bridge模式

非常詳細(xì)的 Docker 學(xué)習(xí)筆記

圖:The Container World | Part 2 Networking

bridge 模式是 Docker 默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會(huì)為每一個(gè)容器分配 Network Namespace、設(shè)置 IP 等,并將一個(gè)主機(jī)上的 Docker 容器連接到一個(gè)虛擬網(wǎng)橋上。當(dāng) Docker server 啟動(dòng)時(shí),會(huì)在主機(jī)上創(chuàng)建一個(gè)名為 docker0 的虛擬網(wǎng)橋,此主機(jī)上啟動(dòng)的 Docker 容器會(huì)連接到這個(gè)虛擬網(wǎng)橋上。虛擬網(wǎng)橋的工作方式和物理交換機(jī)類似,這樣主機(jī)上的所有容器就通過交換機(jī)連在了一個(gè)二層網(wǎng)絡(luò)中。接下來就要為容器分配 IP 了,Docker 會(huì)從 RFC1918 所定義的私有 IP 網(wǎng)段中,選擇一個(gè)和宿主機(jī)不同的IP地址和子網(wǎng)分配給 docker0,連接到 docker0 的容器就從這個(gè)子網(wǎng)中選擇一個(gè)未占用的 IP 使用。如一般 Docker 會(huì)使用 172.17.0.0/16 這個(gè)網(wǎng)段,并將 172.17.42.1/16 分配給 docker0 網(wǎng)橋(在主機(jī)上使用 ifconfig 命令是可以看到 docker0 的,可以認(rèn)為它是網(wǎng)橋的管理接口,在宿主機(jī)上作為一塊虛擬網(wǎng)卡使用)

6.2 列出當(dāng)前主機(jī)網(wǎng)橋

$ sudo brctl show # brctl 工具依賴 bridge-utils 軟件包 bridge name bridge id STP enabled interfacesdocker0 8000.000000000000 no

6.3 查看當(dāng)前 docker0 ip

$ sudo ifconfig docker0docker0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xxinet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0

在容器運(yùn)行時(shí),每個(gè)容器都會(huì)分配一個(gè)特定的虛擬機(jī)口并橋接到 docker0。每個(gè)容器都會(huì)配置同 docker0 ip 相同網(wǎng)段的專用 ip 地址,docker0 的 IP 地址被用于所有容器的默認(rèn)網(wǎng)關(guān)。

6.4 運(yùn)行一個(gè)容器

$ sudo docker run -t -i -d ubuntu /bin/bash52f811c5d3d69edddefc75aff5a4525fc8ba8bcfa1818132f9dc7d4f7c7e78b4 $ sudo brctl showbridge name bridge id STP enabled interfacesdocker0 8000.fef213db5a66 no vethQCDY1N

以上, docker0 扮演著 52f811c5d3d6 container 這個(gè)容器的虛擬接口 vethQCDY1N interface 橋接的角色。

使用特定范圍的 IP

Docker 會(huì)嘗試尋找沒有被主機(jī)使用的 ip 段,盡管它適用于大多數(shù)情況下,但是它不是萬能的,有時(shí)候我們還是需要對(duì) ip 進(jìn)一步規(guī)劃。Docker 允許你管理 docker0 橋接或者通過-b選項(xiàng)自定義橋接網(wǎng)卡,需要安裝bridge-utils軟件包。

基本步驟如下:

ensure Docker is stopped

# 確保 docker 的進(jìn)程是停止的

create your own bridge (bridge0 for example)

# 創(chuàng)建自定義網(wǎng)橋

assign a specific IP to this bridge
# 給網(wǎng)橋分配特定的

ipstart Docker with the -b=bridge0 parameter

# 以 -b 的方式指定網(wǎng)橋

# Stopping Docker and removing docker0 $ sudo service docker stop $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0 # Create our own bridge $ sudo brctl addbr bridge0 $ sudo ip addr add 192.168.5.1/24 dev bridge0 $ sudo ip link set dev bridge0 up # Confirming that our bridge is up and running $ ip addr show bridge0
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
  link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
  inet 192.168.5.1/24 scope global bridge0
    valid_lft forever preferred_lft forever # Tell Docker about it and restart (on Ubuntu) $ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker $ sudo service docker start

參考文檔: Network Configuration

6.5 不同主機(jī)間容器通信

不同容器之間的通信可以借助于 pipework 這個(gè)工具:

$ git clone https://github.com/jpetazzo/pipework.git$ sudo cp -rp pipework/pipework /usr/local/bin/

安裝相應(yīng)依賴軟件

$ sudo apt-get install iputils-arping bridge-utils -y

橋接網(wǎng)絡(luò)

橋接網(wǎng)絡(luò)可以參考 日常問題處理 Tips 關(guān)于橋接的配置說明,這里不再贅述。

# brctl showbridge name bridge id STP enabled interfacesbr0 8000.000c291412cd no eth0docker0 8000.56847afe9799 no vetheb48029

可以刪除 docker0,直接把 docker 的橋接指定為 br0。也可以保留使用默認(rèn)的配置,這樣單主機(jī)容器之間的通信可以通過 docker0,而跨主機(jī)不同容器之間通過 pipework 新建 docker 容器的網(wǎng)卡橋接到 br0,這樣跨主機(jī)容器之間就可以通信了。

ubuntu

$ sudo service docker stop

$ sudo ip link set dev docker0 down$ sudo brctl delbr docker0

$ echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker

$ sudo service docker start

CentOS 7/RHEL 7

$ sudo systemctl stop docker

$ sudo ip link set dev docker0 down$ sudo brctl delbr docker0

$ cat /etc/sysconfig/docker | grep 'OPTIONS='OPTIONS=--selinux-enabled -b=br0 -H fd://

$ sudo systemctl start docker

pipework

非常詳細(xì)的 Docker 學(xué)習(xí)筆記

不同容器之間的通信可以借助于 pipework 這個(gè)工具給 docker 容器新建虛擬網(wǎng)卡并綁定 IP 橋接到 br0

$ git clone https://github.com/jpetazzo/pipework.git
$ sudo cp -rp pipework/pipework /usr/local/bin/
$ pipework 
Syntax:
pipework <hostinterface> [-i containerinterface] <guest> <ipaddr>/<subnet>[@default_gateway] [macaddr][@vlan]
pipework <hostinterface> [-i containerinterface] <guest> dhcp [macaddr][@vlan]
pipework --wait [-i containerinterface]

如果刪除了默認(rèn)的 docker0 橋接,把 docker 默認(rèn)橋接指定到了 br0,則最好在創(chuàng)建容器的時(shí)候加上--net=none,防止自動(dòng)分配的 IP 在局域網(wǎng)中有沖突。

$ sudo docker run --rm -ti --net=none ubuntu:14.04 /bin/bash
root@a46657528059:/#
$         # Ctrl-P + Ctrl-Q 回到宿主機(jī) shell,容器 detach 狀態(tài)
$ sudo docker ps
CONTAINER ID  IMAGE     COMMAND    CREATED     STATUS     PORTS   NAMES
a46657528059  ubuntu:14.04  "/bin/bash"  4 minutes ago  Up 4 minutes        hungry_lalande
$ sudo pipework br0 -i eth0 a46657528059 192.168.115.10/24@192.168.115.2 
# 默認(rèn)不指定網(wǎng)卡設(shè)備名,則默認(rèn)添加為 eth1
# 另外 pipework 不能添加靜態(tài)路由,如果有需求則可以在 run 的時(shí)候加上 --privileged=true 權(quán)限在容器中手動(dòng)添加,
# 但這種安全性有缺陷,可以通過 ip netns 操作
$ sudo docker attach a46657528059
root@a46657528059:/# ifconfig eth0
eth0   Link encap:Ethernet HWaddr 86:b6:6b:e8:2e:4d 
     inet addr:192.168.115.10 Bcast:0.0.0.0 Mask:255.255.255.0
     inet6 addr: fe80::84b6:6bff:fee8:2e4d/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:8 errors:0 dropped:0 overruns:0 frame:0
     TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:648 (648.0 B) TX bytes:690 (690.0 B)

root@a46657528059:/# route -n
Kernel IP routing table
Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
0.0.0.0     192.168.115.2  0.0.0.0     UG  0   0    0 eth0
192.168.115.0  0.0.0.0     255.255.255.0  U   0   0  

使用ip netns添加靜態(tài)路由,避免創(chuàng)建容器使用--privileged=true選項(xiàng)造成一些不必要的安全問題:

$ docker inspect --format="{{ .State.Pid }}" a46657528059 # 獲取指定容器 pid
6350
$ sudo ln -s /proc/6350/ns/net /var/run/netns/6350
$ sudo ip netns exec 6350 ip route add 192.168.0.0/16 dev eth0 via 192.168.115.2
$ sudo ip netns exec 6350 ip route  # 添加成功
192.168.0.0/16 via 192.168.115.2 dev eth0 
... ...

在其它宿主機(jī)進(jìn)行相應(yīng)的配置,新建容器并使用 pipework 添加虛擬網(wǎng)卡橋接到 br0,測(cè)試通信情況即可。

另外,pipework 可以創(chuàng)建容器的 vlan 網(wǎng)絡(luò),這里不作過多的介紹了,官方文檔已經(jīng)寫的很清楚了,可以查看以下兩篇文章:

Pipework 官方文檔Docker 網(wǎng)絡(luò)詳解及 pipework 源碼解讀與實(shí)踐七、Dockerfile

Docker 可以通過 Dockerfile 的內(nèi)容來自動(dòng)構(gòu)建鏡像。Dockerfile 是一個(gè)包含創(chuàng)建鏡像所有命令的文本文件,通過docker build命令可以根據(jù) Dockerfile 的內(nèi)容構(gòu)建鏡像,在介紹如何構(gòu)建之前先介紹下 Dockerfile 的基本語法結(jié)構(gòu)。

Dockerfile 有以下指令選項(xiàng):

  1. FROM
  2. MAINTAINER
  3. RUN
  4. CMD
  5. EXPOSE
  6. ENV
  7. ADD
  8. COPY
  9. ENTRYPOINT
  10. VOLUME
  11. USER
  12. WORKDIR
  13. ONBUILD

7.1 FROM

用法:

FROM <image>

或者

FROM <image>

  1. FROM指定構(gòu)建鏡像的基礎(chǔ)源鏡像,如果本地沒有指定的鏡像,則會(huì)自動(dòng)從 Docker 的公共庫 pull 鏡像下來。
  2. FROM必須是 Dockerfile 中非注釋行的第一個(gè)指令,即一個(gè) Dockerfile 從FROM語句開始。
  3. FROM可以在一個(gè) Dockerfile 中出現(xiàn)多次,如果有需求在一個(gè) Dockerfile 中創(chuàng)建多個(gè)鏡像。
  4. 如果FROM語句沒有指定鏡像標(biāo)簽,則默認(rèn)使用latest標(biāo)簽。

7.2 MAINTAINER

用法:

MAINTAINER <name>

指定創(chuàng)建鏡像的用戶

RUN 有兩種使用方式

RUN

RUN "executable", "param1", "param2"

每條RUN指令將在當(dāng)前鏡像基礎(chǔ)上執(zhí)行指定命令,并提交為新的鏡像,后續(xù)的RUN都在之前RUN提交后的鏡像為基礎(chǔ),鏡像是分層的,可以通過一個(gè)鏡像的任何一個(gè)歷史提交點(diǎn)來創(chuàng)建,類似源碼的版本控制。

exec 方式會(huì)被解析為一個(gè) JSON 數(shù)組,所以必須使用雙引號(hào)而不是單引號(hào)。exec 方式不會(huì)調(diào)用一個(gè)命令 shell,所以也就不會(huì)繼承相應(yīng)的變量,如:

RUN [ "echo", "$HOME" ]

這種方式是不會(huì)達(dá)到輸出 HOME 變量的,正確的方式應(yīng)該是這樣的

RUN [ "sh", "-c", "echo", "$HOME" ]

RUN產(chǎn)生的緩存在下一次構(gòu)建的時(shí)候是不會(huì)失效的,會(huì)被重用,可以使用--no-cache選項(xiàng),即docker build --no-cache,如此便不會(huì)緩存。

7.3 CMD

CMD有三種使用方式:

CMD "executable","param1","param2"CMD "param1","param2"CMD command param1 param2 (shell form)

CMD指定在 Dockerfile 中只能使用一次,如果有多個(gè),則只有最后一個(gè)會(huì)生效。

CMD的目的是為了在啟動(dòng)容器時(shí)提供一個(gè)默認(rèn)的命令執(zhí)行選項(xiàng)。如果用戶啟動(dòng)容器時(shí)指定了運(yùn)行的命令,則會(huì)覆蓋掉CMD指定的命令。

CMD會(huì)在啟動(dòng)容器的時(shí)候執(zhí)行,build 時(shí)不執(zhí)行,而RUN只是在構(gòu)建鏡像的時(shí)候執(zhí)行,后續(xù)鏡像構(gòu)建完成之后,啟動(dòng)容器就與RUN無關(guān)了,這個(gè)初學(xué)者容易弄混這個(gè)概念,這里簡(jiǎn)單注解一下。

7.4 EXPOSE

EXPOSE <port> [<port>...]

告訴 Docker 服務(wù)端容器對(duì)外映射的本地端口,需要在 docker run 的時(shí)候使用-p或者-P選項(xiàng)生效。

7.5 ENV

ENV <key> <value> # 只能設(shè)置一個(gè)變量ENV <key>=<value> ... # 允許一次設(shè)置多個(gè)變量

指定一個(gè)環(huán)節(jié)變量,會(huì)被后續(xù)RUN指令使用,并在容器運(yùn)行時(shí)保留。

例子:

ENV myName="John Doe" myDog=Rex\ The\ Dog \ myCat=fluffy

等同于

ENV myName John DoeENV myDog Rex The DogENV myCat fluffy

7.6 ADD

ADD <src>... <dest>

ADD復(fù)制本地主機(jī)文件、目錄或者遠(yuǎn)程文件 URLS 從 并且添加到容器指定路徑中 。

支持通過 GO 的正則模糊匹配,具體規(guī)則可參見 Go filepath.Match

ADD hom* /mydir/ # adds all files starting with "hom"ADD hom?.txt /mydir/ # ? is replaced with any single character

路徑必須是絕對(duì)路徑,如果 不存在,會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)目錄路徑必須是 Dockerfile 所在路徑的相對(duì)路徑如果是一個(gè)目錄,只會(huì)復(fù)制目錄下的內(nèi)容,而目錄本身則不會(huì)被復(fù)制7.7 COPY

COPY <src>... <dest>

COPY復(fù)制新文件或者目錄從 并且添加到容器指定路徑中 。用法同ADD,唯一的不同是不能指定遠(yuǎn)程文件 URLS。

7.8 ENTRYPOINTENTRYPOINT "executable", "param1", "param2"ENTRYPOINT command param1 param2 (shell form)

配置容器啟動(dòng)后執(zhí)行的命令,并且不可被 docker run 提供的參數(shù)覆蓋,而CMD是可以被覆蓋的。如果需要覆蓋,則可以使用docker run --entrypoint選項(xiàng)。

每個(gè) Dockerfile 中只能有一個(gè)ENTRYPOINT,當(dāng)指定多個(gè)時(shí),只有最后一個(gè)生效。

Exec form ENTRYPOINT 例子

通過ENTRYPOINT使用 exec form 方式設(shè)置穩(wěn)定的默認(rèn)命令和選項(xiàng),而使用CMD添加默認(rèn)之外經(jīng)常被改動(dòng)的選項(xiàng)。

FROM ubuntuENTRYPOINT ["top", "-b"]CMD ["-c"]

通過 Dockerfile 使用ENTRYPOINT展示前臺(tái)運(yùn)行 Apache 服務(wù)

FROM debian:stableRUN apt-get update && apt-get install -y --force-yes apache2EXPOSE 80 443VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

Shell form ENTRYPOINT 例子

這種方式會(huì)在/bin/sh -c中執(zhí)行,會(huì)忽略任何CMD或者docker run命令行選項(xiàng),為了確保docker stop能夠停止長(zhǎng)時(shí)間運(yùn)行ENTRYPOINT的容器,確保執(zhí)行的時(shí)候使用exec選項(xiàng)。

FROM ubuntuENTRYPOINT exec top -b

如果在ENTRYPOINT忘記使用exec選項(xiàng),則可以使用CMD補(bǔ)上:

FROM ubuntuENTRYPOINT top -bCMD --ignored-param1 # --ignored-param2 ... --ignored-param3 ... 依此類推

7.9 VOLUME

VOLUME ["/data"]

創(chuàng)建一個(gè)可以從本地主機(jī)或其他容器掛載的掛載點(diǎn),后續(xù)具體介紹。

7.10 USER

USER daemon

指定運(yùn)行容器時(shí)的用戶名或 UID,后續(xù)的RUN、CMD、ENTRYPOINT也會(huì)使用指定用戶。

7.11 WORKDIR

WORKDIR /path/to/workdir

為后續(xù)的RUN、CMD、ENTRYPOINT指令配置工作目錄??梢允褂枚鄠€(gè)WORKDIR指令,后續(xù)命令如果參數(shù)是相對(duì)路徑,則會(huì)基于之前命令指定的路徑。

WORKDIR /aWORKDIR bWORKDIR cRUN pwd

最終路徑是/a/b/c。

WORKDIR指令可以在ENV設(shè)置變量之后調(diào)用環(huán)境變量:

ENV DIRPATH /pathWORKDIR

$DIRPATH/$DIRNAME

最終路徑則為 /path/$DIRNAME。

7.12 ONBUILD

ONBUILD [INSTRUCTION]

配置當(dāng)所創(chuàng)建的鏡像作為其它新創(chuàng)建鏡像的基礎(chǔ)鏡像時(shí),所執(zhí)行的操作指令。

例如,Dockerfile 使用如下的內(nèi)容創(chuàng)建了鏡像 image-A:

[...]ONBUILD ADD . /app/srcONBUILD

RUN /usr/local/bin/python-build --dir /app/src[...]

如果基于 image-A 創(chuàng)建新的鏡像時(shí),新的 Dockerfile 中使用 FROM image-A 指定基礎(chǔ)鏡像時(shí),會(huì)自動(dòng)執(zhí)行 ONBUILD 指令內(nèi)容,等價(jià)于在后面添加了兩條指令。

# Automatically run the following

ADD . /app/src

RUN /usr/local/bin/python-build --dir /app/src

使用ONBUILD指令的鏡像,推薦在標(biāo)簽中注明,例如 ruby:1.9-onbuild。

7.13 Dockerfile Examples

# Nginx
#
# VERSION        0.0.1

FROM   ubuntu
MAINTAINER Victor Vieux <victor@docker.com>

RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server

# Firefox over VNC
#
# VERSION        0.3

FROM ubuntu

# Install vnc, xvfb in order to create a 'fake' display and firefox
RUN apt-get update && apt-get install -y x11vnc xvfb firefox
RUN mkdir ~/.vnc
# Setup a password
RUN x11vnc -storepasswd 1234 ~/.vnc/passwd
# Autostart firefox (might not be the best way, but it does the trick)
RUN bash -c 'echo "firefox" >> /.bashrc'

EXPOSE 5900
CMD  ["x11vnc", "-forever", "-usepw", "-create"]

# Multiple images example
#
# VERSION        0.1

FROM ubuntu
RUN echo foo > bar
# Will output something like ===> 907ad6c2736f

FROM ubuntu
RUN echo moo > oink
# Will output something like ===> 695d7793cbe4

# You᾿ll now have two images, 907ad6c2736f with /bar, and 695d7793cbe4 with
# /oink.

7.14 docker build

$ docker build --help

Usage: docker build [OPTIONS] PATH | URL | -

Build a new image from the source code at PATH

 --force-rm=false   Always remove intermediate containers, even after unsuccessful builds # 移除過渡容器,即使構(gòu)建失敗
 --no-cache=false   Do not use cache when building the image               # 不實(shí)用 cache    
 -q, --quiet=false  Suppress the verbose output generated by the containers        
 --rm=true      Remove intermediate containers after a successful build        # 構(gòu)建成功后移除過渡層容器
 -t, --tag=""     Repository name (and optionally a tag) to be applied to the resulting image in case of success

參考文檔:Dockerfile Reference

7.15 dockerfile 最佳實(shí)踐使用.dockerignore文件

為了在docker build過程中更快上傳和更加高效,應(yīng)該使用一個(gè).dockerignore文件用來排除構(gòu)建鏡像時(shí)不需要的文件或目錄。例如,除非.git在構(gòu)建過程中需要用到,否則你應(yīng)該將它添加到.dockerignore文件中,這樣可以節(jié)省很多時(shí)間。

避免安裝不必要的軟件包

為了降低復(fù)雜性、依賴性、文件大小以及構(gòu)建時(shí)間,應(yīng)該避免安裝額外的或不必要的包。例如,不需要在一個(gè)數(shù)據(jù)庫鏡像中安裝一個(gè)文本編輯器。

每個(gè)容器都跑一個(gè)進(jìn)程

在大多數(shù)情況下,一個(gè)容器應(yīng)該只單獨(dú)跑一個(gè)程序。解耦應(yīng)用到多個(gè)容器使其更容易橫向擴(kuò)展和重用。如果一個(gè)服務(wù)依賴另外一個(gè)服務(wù),可以參考 Linking Containers Together。

最小化層

我們知道每執(zhí)行一個(gè)指令,都會(huì)有一次鏡像的提交,鏡像是分層的結(jié)構(gòu),對(duì)于Dockerfile,應(yīng)該找到可讀性和最小化層之間的平衡。

多行參數(shù)排序

如果可能,通過字母順序來排序,這樣可以避免安裝包的重復(fù)并且更容易更新列表,另外可讀性也會(huì)更強(qiáng),添加一個(gè)空行使用\換行:

RUN apt-get update && apt-get install -y \ bzr \ cvs \ git \ mercurial \ subversion

創(chuàng)建緩存

鏡像構(gòu)建過程中會(huì)按照Dockerfile的順序依次執(zhí)行,每執(zhí)行一次指令 Docker 會(huì)尋找是否有存在的鏡像緩存可復(fù)用,如果沒有則創(chuàng)建新的鏡像。如果不想使用緩存,則可以在docker build時(shí)添加--no-cache=true選項(xiàng)。

從基礎(chǔ)鏡像開始就已經(jīng)在緩存中了,下一個(gè)指令會(huì)對(duì)比所有的子鏡像尋找是否執(zhí)行相同的指令,如果沒有則緩存失效。在大多數(shù)情況下只對(duì)比Dockerfile指令和子鏡像就足夠了。ADD和COPY指令除外,執(zhí)行ADD和COPY時(shí)存放到鏡像的文件也是需要檢查的,完成一個(gè)文件的校驗(yàn)之后再利用這個(gè)校驗(yàn)在緩存中查找,如果檢測(cè)的文件改變則緩存失效。RUN apt-get -y update命令只檢查命令是否匹配,如果匹配就不會(huì)再執(zhí)行更新了。

為了有效地利用緩存,你需要保持你的 Dockerfile 一致,并且盡量在末尾修改。

Dockerfile 指令FROM: 只要可能就使用官方鏡像庫作為基礎(chǔ)鏡像RUN: 為保持可讀性、方便理解、可維護(hù)性,把長(zhǎng)或者復(fù)雜的RUN語句使用\分隔符分成多行不建議RUN apt-get update獨(dú)立成行,否則如果后續(xù)包有更新,那么也不會(huì)再執(zhí)行更新避免使用RUN apt-get upgrade或者dist-upgrade,很多必要的包在一個(gè)非privileged權(quán)限的容器里是無法升級(jí)的。如果知道某個(gè)包更新,使用apt-get install -y xxx標(biāo)準(zhǔn)寫法RUN apt-get update && apt-get install -y package-bar package-foo

例子:

RUN apt-get update && apt-get install -y \
  aufs-tools \
  automake \
  btrfs-tools \
  build-essential \
  curl \
  dpkg-sig \
  git \
  iptables \
  libapparmor-dev \
  libcap-dev \
  libsqlite3-dev \
  lxc=1.0* \
  mercurial \
  parallel \
  reprepro \
  ruby1.9.1 \
  ruby1.9.1-dev \
  s3cmd=1.1.0*

CMD: 推薦使用CMD [“executable”, “param1”, “param2”…]這種格式,CMD [“param”, “param”]則配合ENTRYPOINT使用

EXPOSE: Dockerfile 指定要公開的端口,使用docker run時(shí)指定映射到宿主機(jī)的端口即可ENV: 為了使新的軟件更容易運(yùn)行,可以使用ENV更新PATH變量。如ENV PATH /usr/local/nginx/bin:$PATH確保CMD ["nginx"]即可運(yùn)行

ENV也可以這樣定義變量:

ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.4
RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …
ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH

ADDorCOPY:ADD比COPY多一些特性「tar 文件自動(dòng)解包和支持遠(yuǎn)程 URL」,不推薦添加遠(yuǎn)程 URL

如不推薦這種方式:

ADD http://example.com/big.tar.xz /usr/src/things/

RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things

RUN make -C /usr/src/things all

推薦使用 curl 或者 wget 替換,使用如下方式:

RUN mkdir -p /usr/src/things \

&& curl -SL http://example.com/big.tar.gz \ | tar -xJC /usr/src/things \

&& make -C /usr/src/things all

如果不需要添加 tar 文件,推薦使用COPY。

參考文檔:

Best practices for writing DockerfilesDockerfile最佳實(shí)踐(一)Dockerfile最佳實(shí)踐(二)八、容器數(shù)據(jù)管理

docker管理數(shù)據(jù)的方式有兩種:

數(shù)據(jù)卷數(shù)據(jù)卷容器8.1 數(shù)據(jù)卷

數(shù)據(jù)卷是一個(gè)或多個(gè)容器專門指定繞過Union File System的目錄,為持續(xù)性或共享數(shù)據(jù)提供一些有用的功能:

數(shù)據(jù)卷可以在容器間共享和重用數(shù)據(jù)卷數(shù)據(jù)改變是直接修改的數(shù)據(jù)卷數(shù)據(jù)改變不會(huì)被包括在容器中數(shù)據(jù)卷是持續(xù)性的,直到?jīng)]有容器使用它們添加一個(gè)數(shù)據(jù)卷

你可以使用-v選項(xiàng)添加一個(gè)數(shù)據(jù)卷,或者可以使用多次-v選項(xiàng)為一個(gè) docker 容器運(yùn)行掛載多個(gè)數(shù)據(jù)卷。

$ sudo docker run --name data -v /data -t -i ubuntu:14.04 /bin/bash 
# 創(chuàng)建數(shù)據(jù)卷綁定到到新建容器,新建容器中會(huì)創(chuàng)建 /
data 數(shù)據(jù)卷 bash-4.1# ls -ld /data/drwxr-xr-x 2 root root 4096 Jul 23 06:59 /data/bash-4.1
# df -ThFilesystem Type Size Used Avail Use% Mounted on... ... ext4 91G 4.6G 82G 6% /data

創(chuàng)建的數(shù)據(jù)卷可以通過docker inspect獲取宿主機(jī)對(duì)應(yīng)路徑

$ sudo docker inspect data... ... 
"Volumes": { "/data": "/var/lib/docker/vfs/dir/151de401d268226f96d824fdf444e77a4500aed74c495de5980c807a2ffb7ea9" }, # 可以看到創(chuàng)建的數(shù)據(jù)卷宿主機(jī)路徑 ... ...

或者直接指定獲取

$ sudo docker inspect --format="{{ .Volumes }}" datamap[/data: /var/lib/docker/vfs/dir/151de401d268226f96d824fdf444e77a4500aed74c495de5980c807a2ffb7ea9]

掛載宿主機(jī)目錄為一個(gè)數(shù)據(jù)卷

-v選項(xiàng)除了可以創(chuàng)建卷,也可以掛載當(dāng)前主機(jī)的一個(gè)目錄到容器中。

$ sudo docker run --name web -v /source/:/web -t -i ubuntu:14.04 /bin/bashbash-4.1# ls -ld /web/drwxr-xr-x 2 root root 4096 Jul 23 06:59 /web/bash-4.1# df -Th... ... ext4 91G 4.6G 82G 6% /webbash-4.1# exit

默認(rèn)掛載卷是可讀寫的,可以在掛載時(shí)指定只讀

$ sudo docker run --rm --name test -v /source/:/test:ro -t -i ubuntu:14.04 /bin/bash

8.2 創(chuàng)建和掛載一個(gè)數(shù)據(jù)卷容器

如果你有一些持久性的數(shù)據(jù)并且想在容器間共享,或者想用在非持久性的容器上,最好的方法是創(chuàng)建一個(gè)數(shù)據(jù)卷容器,然后從此容器上掛載數(shù)據(jù)。

創(chuàng)建數(shù)據(jù)卷容器

使用--volumes-from選項(xiàng)在另一個(gè)容器中掛載 /test 卷。不管 test 容器是否運(yùn)行,其它容器都可以掛載該容器數(shù)據(jù)卷,當(dāng)然如果只是單獨(dú)的數(shù)據(jù)卷是沒必要運(yùn)行容器的。

添加另一個(gè)容器

$ sudo docker run -t -i -d --volumes-from test --name test2 ubuntu:14.04 /bin/bash

也可以繼承其它掛載有 /test 卷的容器

$ sudo docker run -t -i -d --volumes-from test1 --name test3 ubuntu:14.04 /bin/bash

非常詳細(xì)的 Docker 學(xué)習(xí)筆記

8.3 備份、恢復(fù)或遷移數(shù)據(jù)卷備份

$ sudo docker run --rm --volumes-from test -v $(pwd):/backup ubuntu:14.04 tar cvf /backup/test.tar /testtar: Removing leading `/' from member names/test//test/b/test/d/test/c/test/a

啟動(dòng)一個(gè)新的容器并且從test容器中掛載卷,然后掛載當(dāng)前目錄到容器中為 backup,并備份 test 卷中所有的數(shù)據(jù)為 test.tar,執(zhí)行完成之后刪除容器--rm,此時(shí)備份就在當(dāng)前的目錄下,名為test.tar。

$ ls # 宿主機(jī)當(dāng)前目錄下產(chǎn)生了 test 卷的備份文件 test.tar test.tar

恢復(fù)

你可以恢復(fù)給同一個(gè)容器或者另外的容器,新建容器并解壓備份文件到新的容器數(shù)據(jù)卷

$ sudo docker run -t -i -d -v /test --name test4 ubuntu:14.04 /bin/bash $ sudo docker run --rm --volumes-from test4 -v $(pwd):/backup ubuntu:14.04 tar xvf /backup/test.tar -C / # 恢復(fù)之前的文件到新建卷中,執(zhí)行完后自動(dòng)刪除容器 test/ test/b test/d test/c test/a

8.4 刪除 Volumes

Volume 只有在下列情況下才能被刪除:

docker rm -v刪除容器時(shí)添加了-v選項(xiàng)docker run --rm運(yùn)行容器時(shí)添加了--rm選項(xiàng)

否則,會(huì)在/var/lib/docker/vfs/dir目錄中遺留很多不明目錄。

參考文檔:

Managing Data in Containers深入理解Docker Volume(一)深入理解Docker Volume(二)九、鏈接容器

docker 允許把多個(gè)容器連接在一起,相互交互信息。docker 鏈接會(huì)創(chuàng)建一種容器父子級(jí)別的關(guān)系,其中父容器可以看到其子容器提供的信息。

9.1 容器命名

在創(chuàng)建容器時(shí),如果不指定容器的名字,則默認(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)名字,這里推薦給容器命名:

1、給容器命名方便記憶,如命名運(yùn)行 web 應(yīng)用的容器為 web2、為 docker 容器提供一個(gè)參考,允許方便其他容器調(diào)用,如把容器 web 鏈接到容器 db

可以通過--name選項(xiàng)給容器自定義命名:

$ sudo docker run -d -t -i --name test ubuntu:14.04 bash $ sudo docker inspect --format="{{ .Nmae }}" test/test

注:容器名稱必須唯一,即你只能命名一個(gè)叫test的容器。如果你想復(fù)用容器名,則必須在創(chuàng)建新的容器前通過docker rm刪除舊的容器或者創(chuàng)建容器時(shí)添加--rm選項(xiàng)。

9.2 鏈接容器

鏈接允許容器間安全通信,使用--link選項(xiàng)創(chuàng)建鏈接。

$ sudo docker run -d --name db training/postgre

基于 training/postgres 鏡像創(chuàng)建一個(gè)名為 db 的容器,然后下面創(chuàng)建一個(gè)叫做 web 的容器,并且將它與 db 相互連接在一起

$ sudo docker run -d -P --name web --link db:db training/webapp python app.py

--link <name or id>:alias選項(xiàng)指定鏈接到的容器。

查看 web 容器的鏈接關(guān)系:

$ sudo docker inspect -f "{{ .HostConfig.Links }}" web[/db:/web/db]

可以看到 web 容器被鏈接到 db 容器為/web/db,這允許 web 容器訪問 db 容器的信息。

容器之間的鏈接實(shí)際做了什么?一個(gè)鏈接允許一個(gè)源容器提供信息訪問給一個(gè)接收容器。在本例中,web 容器作為一個(gè)接收者,允許訪問源容器 db 的相關(guān)服務(wù)信息。Docker 創(chuàng)建了一個(gè)安全隧道而不需要對(duì)外公開任何端口給外部容器,因此不需要在創(chuàng)建容器的時(shí)候添加-p或-P指定對(duì)外公開的端口,這也是鏈接容器的最大好處,本例為 PostgreSQL 數(shù)據(jù)庫。

Docker 主要通過以下兩個(gè)方式提供連接信息給接收容器:

環(huán)境變量更新/etc/hosts文件環(huán)境變量

當(dāng)兩個(gè)容器鏈接,Docker 會(huì)在目標(biāo)容器上設(shè)置一些環(huán)境變量,以獲取源容器的相關(guān)信息。

首先,Docker 會(huì)在每個(gè)通過--link選項(xiàng)指定別名的目標(biāo)容器上設(shè)置一個(gè)<alias>_NAME環(huán)境變量。如果一個(gè)名為 web 的容器通過--link db:webdb被鏈接到一個(gè)名為 db 的數(shù)據(jù)庫容器,那么 web 容器上會(huì)設(shè)置一個(gè)環(huán)境變量為WEBDB_NAME=/web/webdb.

以之前的為例,Docker 還會(huì)設(shè)置端口變量:

$ sudo docker run --rm --name web2 --link db:db training/webapp env. . .DB_NAME=/web2/dbDB_PORT=tcp://172.17.0.5:5432 DB_PORT_5432_TCP=tcp://172.17.0.5:5432 # <name>_PORT_<port>_<protocol> 協(xié)議可以是 TCP 或 UDPDB_PORT_5432_TCP_PROTO=tcpDB_PORT_5432_TCP_PORT=5432DB_PORT_5432_TCP_ADDR=172.17.0.5. . .

注:這些環(huán)境變量只設(shè)置給容器中的第一個(gè)進(jìn)程,類似一些守護(hù)進(jìn)程 (如 sshd ) 當(dāng)他們派生 shells 時(shí)會(huì)清除這些變量

更新/etc/hosts文件

除了環(huán)境變量,Docker 會(huì)在目標(biāo)容器上添加相關(guān)主機(jī)條目到/etc/hosts中,上例中就是 web 容器。

$ sudo docker run -t -i --rm --link db:db training/webapp /bin/bashroot@aed84ee21bde:/opt/webapp
# cat /etc/hosts172.17.0.7 aed84ee21bde. . .172.17.0.5 db

/etc/host文件在源容器被重啟之后會(huì)自動(dòng)更新 IP 地址,而環(huán)境變量中的 IP 地址則不會(huì)自動(dòng)更新的。

十、構(gòu)建私有庫

Docker 官方提供了 docker registry 的構(gòu)建方法 docker-registry

10.1 快速構(gòu)建

快速構(gòu)建 docker registry 通過以下兩步:

安裝 docker運(yùn)行 registry:docker run -p 5000:5000 registry

這種方法通過 Docker hub 使用官方鏡像 official image from the Docker hub

10.2 不使用容器構(gòu)建 registry安裝必要的軟件

$ sudo apt-get install build-essential python-dev libevent-dev python-pip liblzma-dev

配置 docker-registry

sudo pip install docker-registry

或者 使用 github clone 手動(dòng)安裝

$ git clone https://github.com/dotcloud/docker-registry.git

$ cd docker-registry/

$ cp config/config_sample.yml config/config.yml$ mkdir /data/registry -p

$ pip install .

運(yùn)行

docker-registry

高級(jí)啟動(dòng)方式 [不推薦]

使用gunicorn控制:

gunicorn -c contrib/gunicorn_config.py docker_registry.wsgi:application

或者對(duì)外監(jiān)聽開放

gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 4 --max-requests 100 docker_registry.wsgi:application

10.3 提交指定容器到私有庫

$ docker tag ubuntu:12.04 私有庫IP:5000/ubuntu:12.04$ docker push 私有庫IP:5000/ubuntu

更多的配置選項(xiàng)推薦閱讀官方文檔:

Docker-Registry README

Docker-Registry advanced use

來自:http://opskumu.github.io/docker.html

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Docker 清理命令集錦

    Docker 清理命令集錦

    這篇文章主要介紹了Docker 清理命令集錦,需要的朋友可以參考下
    2014-10-10
  • 在docker中部署tomcat并且部署java應(yīng)用程序的步驟詳解

    在docker中部署tomcat并且部署java應(yīng)用程序的步驟詳解

    本文給大家介紹如何在docker中部署tomcat及如何部署我們的應(yīng)用程序到docker容器的tomcat里,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,一起看看吧
    2016-10-10
  • docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析

    docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析

    這篇文章主要為大家介紹了docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • docker直接下載太慢,如何更換國內(nèi)靠譜鏡像源

    docker直接下載太慢,如何更換國內(nèi)靠譜鏡像源

    這篇文章主要介紹了docker直接下載太慢,如何更換國內(nèi)靠譜鏡像源問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • docker安裝nginx并部署前端項(xiàng)目的全過程

    docker安裝nginx并部署前端項(xiàng)目的全過程

    作為一個(gè)前端,代碼寫完,最后部署到服務(wù)器,這是一個(gè)必須要了解的過程,這篇文章主要給大家介紹了關(guān)于docker安裝nginx并部署前端項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Docker Portainer 可視化面板的使用

    Docker Portainer 可視化面板的使用

    本文主要介紹了Docker Portainer 可視化面板的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • windows使用docker部署gitlab方式

    windows使用docker部署gitlab方式

    這篇文章主要介紹了windows使用docker部署gitlab方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 詳解六種減小Docker鏡像大小的方法

    詳解六種減小Docker鏡像大小的方法

    這篇文章主要介紹了詳解六種減小Docker鏡像大小的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 手把手帶大家通過Docker部署前后端分離項(xiàng)目(親測(cè)可用)

    手把手帶大家通過Docker部署前后端分離項(xiàng)目(親測(cè)可用)

    近年來前后端分離已經(jīng)成為中大型軟件項(xiàng)目開發(fā)的最佳實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于通過Docker部署前后端分離項(xiàng)目的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • docker內(nèi)部ping和ip命令的使用方式

    docker內(nèi)部ping和ip命令的使用方式

    這篇文章主要介紹了docker內(nèi)部ping和ip命令的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評(píng)論

天天干天天插天天谢| 亚洲精品国品乱码久久久久| 大香蕉日本伊人中文在线| 婷婷综合蜜桃av在线| 91国产在线视频免费观看| rct470中文字幕在线| 在线免费观看亚洲精品电影 | 97少妇精品在线观看| 北条麻妃av在线免费观看| 激情人妻校园春色亚洲欧美 | 一区二区在线视频中文字幕| 91成人在线观看免费视频| 中文字幕第一页国产在线| 一区二区三区国产精选在线播放| 中英文字幕av一区| 毛片一级完整版免费| 激情综合治理六月婷婷| 成年女人免费播放视频| 99国内小视频在现欢看| 污污小视频91在线观看| 国产午夜亚洲精品不卡在线观看| 精品亚洲国产中文自在线| 亚洲高清免费在线观看视频| 中文字幕视频一区二区在线观看| 国产精品探花熟女在线观看| 久久国产精品精品美女| av在线shipin| 99久久激情婷婷综合五月天| 亚洲熟妇无码一区二区三区| 偷拍美女一区二区三区| 人妻少妇精品久久久久久| 51国产成人精品视频| 亚洲成人av一区久久| 老司机99精品视频在线观看| 深田咏美亚洲一区二区| 9色精品视频在线观看| 亚洲图片偷拍自拍区| 成人色综合中文字幕| 中文字幕 人妻精品| 91色老99久久九九爱精品| 新婚人妻聚会被中出| 黄色片年轻人在线观看| 1区2区3区不卡视频| 在线观看国产免费麻豆| 2o22av在线视频| 亚洲日本一区二区三区| 1000部国产精品成人观看视频| 女生自摸在线观看一区二区三区 | 在线网站你懂得老司机| 午夜激情久久不卡一区二区| 2017亚洲男人天堂| jul—619中文字幕在线| 国产亚洲视频在线二区| 第一福利视频在线观看| 欧美中国日韩久久精品| 国产性感美女福利视频| rct470中文字幕在线| 亚洲人妻国产精品综合| 大陆av手机在线观看| 成人av天堂丝袜在线观看| 中文字幕亚洲中文字幕| 岛国黄色大片在线观看| 大肉大捧一进一出好爽在线视频| 激情图片日韩欧美人妻| 亚洲无码一区在线影院| av中文字幕国产在线观看| 青青在线视频性感少妇和隔壁黑丝| 偷拍自拍 中文字幕| 自拍偷区二区三区麻豆| 亚洲欧美人精品高清| 少妇人妻100系列| 天天躁日日躁狠狠躁躁欧美av| 久久久久久国产精品| 好太好爽好想要免费| 精品一区二区三区午夜| 国产妇女自拍区在线观看| 国产日本精品久久久久久久| 任我爽精品视频在线播放| 在线观看视频 你懂的| 日本韩国亚洲综合日韩欧美国产| 色综合久久久久久久久中文| 亚洲另类综合一区小说| 91超碰青青中文字幕| 99热久久极品热亚洲| 激情图片日韩欧美人妻| 欧美另类重口味极品在线观看| 亚洲天天干 夜夜操| 亚洲卡1卡2卡三卡四老狼| 福利视频网久久91| 国产美女精品福利在线| 99精品一区二区三区的区| 成人区人妻精品一区二视频| 亚洲av日韩精品久久久久久hd| 硬鸡巴动态操女人逼视频| 国产麻豆91在线视频| 人妻爱爱 中文字幕| 可以免费看的www视频你懂的| 国产精品国产三级国产精东| 粉嫩小穴流水视频在线观看| 精品一线二线三线日本| 欧美性感尤物人妻在线免费看| 97小视频人妻一区二区| 欧美交性又色又爽又黄麻豆| 亚洲国产成人最新资源| 成熟熟女国产精品一区| 97精品视频在线观看| 夜色福利视频在线观看| 亚洲天堂成人在线观看视频网站| 黄片大全在线观看观看| 成人av天堂丝袜在线观看| 人人妻人人爽人人澡人人精品| 亚洲蜜臀av一区二区三区九色 | 不卡一区一区三区在线| 黑人巨大的吊bdsm| 啊啊好慢点插舔我逼啊啊啊视频| 亚洲一区二区人妻av| 久久精品亚洲国产av香蕉| 欧美另类重口味极品在线观看| 九色porny九色9l自拍视频| 青青草人人妻人人妻| 天天摸天天亲天天舔天天操天天爽| 亚洲欧美一区二区三区电影| 九色视频在线观看免费| 久久久久只精品国产三级| 欧美黄片精彩在线免费观看| 大香蕉玖玖一区2区| 九一传媒制片厂视频在线免费观看| 国产精品黄色的av| 天天射,天天操,天天说| 亚洲图片欧美校园春色| 伊拉克及约旦宣布关闭领空| 欧美视频中文一区二区三区| 欧美成人黄片一区二区三区| 中文字母永久播放1区2区3区 | 日韩精品中文字幕福利| 免费看美女脱光衣服的视频| 亚洲美女美妇久久字幕组| 乱亲女秽乱长久久久| 99热碰碰热精品a中文| 国产 在线 免费 精品| 青青青视频手机在线观看| 日本熟妇喷水xxx| 婷婷六月天中文字幕| 亚洲中文字幕校园春色| 老司机99精品视频在线观看| 日本韩国免费一区二区三区视频| aiss午夜免费视频| 黄色片黄色片wyaa| 阿v天堂2014 一区亚洲| 日本性感美女写真视频| 一区二区三区毛片国产一区| 成人区人妻精品一区二视频| 婷婷久久一区二区字幕网址你懂得 | 久久99久久99精品影院| 在线观看av观看av| 日本啪啪啪啪啪啪啪| 我想看操逼黄色大片| 宅男噜噜噜666国产| 操的小逼流水的文章| 红桃av成人在线观看| 中文字幕日韩无敌亚洲精品| 久久热这里这里只有精品| 少妇一区二区三区久久久| 亚洲精品久久综合久| aⅴ五十路av熟女中出| 天天插天天狠天天操| 欧美一区二区中文字幕电影| 亚洲av色香蕉一区二区三区| 视频在线亚洲一区二区| 免费在线看的黄网站| 丝袜肉丝一区二区三区四区在线| 偷拍自拍亚洲视频在线观看| 亚洲1069综合男同| 国产麻豆精品人妻av| 桃色视频在线观看一区二区| 国产女人叫床高潮大片视频| 亚洲国产40页第21页| 2o22av在线视频| 成人福利视频免费在线| 玖玖一区二区在线观看| 欧洲亚洲欧美日韩综合| 美女吃鸡巴操逼高潮视频| 国产精品人妻66p| 国产日本精品久久久久久久| 大学生A级毛片免费视频| 日韩欧美国产一区不卡| 日韩二区视频一线天婷婷五| 日日操夜夜撸天天干| 欧美一区二区三区久久久aaa| 日韩国产乱码中文字幕| 啊啊啊想要被插进去视频| 亚洲区欧美区另类最新章节| 男人在床上插女人视频| 2020久久躁狠狠躁夜夜躁 | 91国语爽死我了不卡| 经典av尤物一区二区| 美女少妇亚洲精选av| 91久久人澡人人添人人爽乱| 天堂资源网av中文字幕| 2022天天干天天操| 亚洲国产欧美国产综合在线| 久久久久久久久久一区二区三区| 2022国产综合在线干| 午夜精品一区二区三区福利视频| 黄网十四区丁香社区激情五月天| 久久精品国产999| 女生自摸在线观看一区二区三区 | 国产亚洲视频在线观看| av老司机亚洲一区二区| 亚洲精品ww久久久久久| 国产实拍勾搭女技师av在线| 又黄又刺激的午夜小视频| 亚洲 欧美 精品 激情 偷拍| 午夜在线精品偷拍一区二| 国产91精品拍在线观看| 国产又粗又猛又爽又黄的视频美国| 北条麻妃高跟丝袜啪啪| 日韩av大胆在线观看| 最近中文字幕国产在线| 亚洲精品亚洲人成在线导航| 日本少妇在线视频大香蕉在线观看 | 999九九久久久精品| 国产乱子伦一二三区| 国产精品手机在线看片| 国产女人被做到高潮免费视频| 视频在线免费观看你懂得| 亚洲偷自拍高清视频| 日本www中文字幕| 欧美一区二区三区高清不卡tv | 初美沙希中文字幕在线| 97a片免费在线观看| 人妻激情图片视频小说| 亚洲最大黄 嗯色 操 啊| 国产+亚洲+欧美+另类| 中国无遮挡白丝袜二区精品| 国产使劲操在线播放| 一区二区三区欧美日韩高清播放| 日韩a级黄色小视频| 91老师蜜桃臀大屁股| 岛国免费大片在线观看| 超级碰碰在线视频免费观看| 91精品免费久久久久久| 美味人妻2在线播放| 成人资源在线观看免费官网| 97国产精品97久久| 人妻最新视频在线免费观看| 久久久极品久久蜜桃| 五月色婷婷综合开心网4438| 久久机热/这里只有| 制丝袜业一区二区三区| 狠狠躁狠狠爱网站视频| 国产精品系列在线观看一区二区| 亚洲一区二区三区久久午夜| 黄色片年轻人在线观看| 欧美国品一二三产区区别| 一级黄色av在线观看| 97国产精品97久久| 天堂av在线播放免费| 亚洲欧美另类自拍偷拍色图| 亚洲综合另类精品小说| 19一区二区三区在线播放| 大学生A级毛片免费视频| 日本一二三区不卡无| av视屏免费在线播放| 婷婷综合亚洲爱久久| 国产刺激激情美女网站| 国产精品亚洲а∨天堂免| 亚洲成人情色电影在线观看| 97超碰国语国产97超碰| 色av色婷婷人妻久久久精品高清| 久草电影免费在线观看| 色综合天天综合网国产成人| 激情五月婷婷综合色啪| 精品av国产一区二区三区四区| 早川濑里奈av黑人番号| 日韩av有码中文字幕| 国产精品国产三级麻豆| 最近中文字幕国产在线| aⅴ精产国品一二三产品| 国产精品大陆在线2019不卡| 春色激情网欧美成人| 快点插进来操我逼啊视频| 国产日韩精品电影7777| 亚洲国产成人av在线一区| 青青草原色片网站在线观看| 亚洲高清视频在线不卡| 11久久久久久久久久久| 97人妻总资源视频| 欧美久久一区二区伊人| 亚洲中文精品人人免费| weyvv5国产成人精品的视频| 午夜成午夜成年片在线观看| 中文字幕,亚洲人妻| 97精品综合久久在线| 五十路息与子猛烈交尾视频| 少妇露脸深喉口爆吞精| 青青在线视频性感少妇和隔壁黑丝| 欧美性感尤物人妻在线免费看| 经典亚洲伊人第一页| 适合午夜一个人看的视频| 国产1区,2区,3区| 免费成人av中文字幕| 欧美亚洲牲夜夜综合久久| 亚洲一区久久免费视频| 一区二区三区麻豆福利视频| 日韩av免费观看一区| 年轻的人妻被夫上司侵犯| 97人人模人人爽人人喊| 天天干天天啪天天舔| 久久尻中国美女视频| 日日操夜夜撸天天干| 欧美成人一二三在线网| 国产白袜脚足J棉袜在线观看| 国产亚洲精品视频合集| 黑人借宿ntr人妻的沦陷2| 色婷婷久久久久swag精品| 狠狠躁夜夜躁人人爽天天久天啪| 日本丰满熟妇大屁股久久| 美味人妻2在线播放| 亚洲欧美清纯唯美另类| 中文字幕视频一区二区在线观看| 欧美区一区二区三视频| 一二三区在线观看视频| 久久久久久久精品老熟妇| 蜜桃视频入口久久久| 晚上一个人看操B片| 高清一区二区欧美系列| 欧美va不卡视频在线观看| 亚洲一区二区三区久久受 | 日本啪啪啪啪啪啪啪| 日本乱人一区二区三区| 93人妻人人揉人人澡人人| 在线免费91激情四射 | 在线免费观看靠比视频的网站| 精品国产污污免费网站入口自| 99精品免费观看视频| 国产午夜男女爽爽爽爽爽视频| 干逼又爽又黄又免费的视频| 国产精品欧美日韩区二区| 五十路熟女av天堂| 一个色综合男人天堂| 美女av色播在线播放| chinese国产盗摄一区二区| 久草视频在线免播放| 强行扒开双腿猛烈进入免费版| 久久久精品欧洲亚洲av| 天天日天天干天天搡| 3D动漫精品啪啪一区二区下载| 日韩欧美一级黄片亚洲| 少妇一区二区三区久久久| 自拍偷拍日韩欧美亚洲| 午夜成午夜成年片在线观看| 日本黄色三级高清视频| 97青青青手机在线视频| 日韩欧美亚洲熟女人妻| 午夜精品福利91av| 免费啪啪啪在线观看视频| 98视频精品在线观看| 亚洲中文字幕校园春色| 国产精品自拍在线视频| 91人妻精品久久久久久久网站 | 大鸡吧插逼逼视频免费看| 亚洲综合色在线免费观看| 国产成人无码精品久久久电影| 久久久久国产成人精品亚洲午夜| 青娱乐蜜桃臀av色| 亚洲精品在线资源站| aⅴ五十路av熟女中出| 骚货自慰被发现爆操| 极品粉嫩小泬白浆20p主播| 男人靠女人的逼视频| 黄工厂精品视频在线观看| 国产亚洲成人免费在线观看| 欧美精品免费aaaaaa| 日本性感美女视频网站| 亚洲熟色妇av日韩熟色妇在线| 亚洲一区制服丝袜美腿| av在线免费资源站| 夫妻在线观看视频91| 日本欧美视频在线观看三区| 亚洲精品 日韩电影| 亚洲国产40页第21页| 国产精品黄片免费在线观看| 喷水视频在线观看这里只有精品| 亚洲国产中文字幕啊啊啊不行了| av中文字幕在线观看第三页| 亚洲少妇高潮免费观看| 性欧美激情久久久久久久| 亚洲日产av一区二区在线| 精品黑人一区二区三区久久国产 | 视频二区在线视频观看| 亚洲第一伊人天堂网| 国产三级片久久久久久久 | 日韩近亲视频在线观看| 亚洲av成人免费网站| 色偷偷伊人大杳蕉综合网| 乱亲女秽乱长久久久| 啪啪啪啪啪啪啪免费视频| 91九色国产熟女一区二区| 精品一区二区三区三区88| 国产大鸡巴大鸡巴操小骚逼小骚逼| 成人国产激情自拍三区| 人妻少妇精品久久久久久| 国产一区二区视频观看| aaa久久久久久久久| 亚洲图库另类图片区| 亚洲午夜高清在线观看| 人妻少妇亚洲精品中文字幕| 91‖亚洲‖国产熟女| 天堂av中文在线最新版| 亚洲国产成人最新资源| jul—619中文字幕在线| 一色桃子人妻一区二区三区| 中国熟女@视频91| 日本一区美女福利视频| 日本18禁久久久久久| 国产在线91观看免费观看| 成熟丰满熟妇高潮xx×xx| 99精品视频在线观看婷婷| 成人性爱在线看四区| 亚洲图库另类图片区| 偷拍自拍视频图片免费| 97人妻夜夜爽二区欧美极品| 天天操夜夜骑日日摸| 日韩在线中文字幕色| 亚洲一区制服丝袜美腿| 无忧传媒在线观看视频| 91福利在线视频免费观看| 国产普通话插插视频| 特级欧美插插插插插bbbbb| 日本成人不卡一区二区| 同居了嫂子在线播高清中文| 国产成人小视频在线观看无遮挡| 五月激情婷婷久久综合网| 日韩精品中文字幕播放| 亚洲成人黄色一区二区三区| 人人妻人人澡欧美91精品| 欧美成人精品在线观看| 伊人成人在线综合网| 亚洲一区二区三区在线高清 | 国产大鸡巴大鸡巴操小骚逼小骚逼| 天天操天天干天天日狠狠插| 天天干天天日天天谢综合156| weyvv5国产成人精品的视频| 最新91精品视频在线| 性生活第二下硬不起来| 日本黄色特一级视频| 免费无码人妻日韩精品一区二区| 亚洲麻豆一区二区三区| 97色视频在线观看| 国产自拍黄片在线观看| 亚洲成人情色电影在线观看| 夜色17s精品人妻熟女| 国产a级毛久久久久精品| 亚洲国产免费av一区二区三区| 日韩无码国产精品强奸乱伦| 亚洲av人人澡人人爽人人爱| 日韩精品二区一区久久| 38av一区二区三区| 亚洲人妻国产精品综合| 日本在线不卡免费视频| 国产午夜亚洲精品不卡在线观看| 国产麻豆乱子伦午夜视频观看| 最近中文2019年在线看| 精品91自产拍在线观看一区| 亚洲精品午夜aaa久久| 午夜久久久久久久99| 人人妻人人澡欧美91精品| 二区中出在线观看老师 | 国产又粗又硬又大视频| 91九色porny国产蝌蚪视频| 精品国产污污免费网站入口自| 2022国产综合在线干| 久久久制服丝袜中文字幕| 自拍偷拍vs一区二区三区| 日韩国产乱码中文字幕| 黄色大片男人操女人逼| 亚洲综合一区二区精品久久| 国产熟妇乱妇熟色T区| 亚洲精品国品乱码久久久久| 人妻激情图片视频小说| 天天干天天操天天扣| 日日日日日日日日夜夜夜夜夜夜| yellow在线播放av啊啊啊| 国产janese在线播放| 国产午夜福利av导航 | 人妻少妇一区二区三区蜜桃| 亚洲成人熟妇一区二区三区 | 亚洲av日韩精品久久久久久hd| 中文字幕人妻一区二区视频 | 淫秽激情视频免费观看| av高潮迭起在线观看| 久久综合老鸭窝色综合久久| 国产成人自拍视频播放| 青草久久视频在线观看| 精品区一区二区三区四区人妻| 青青青青操在线观看免费| 天美传媒mv视频在线观看| 欧美精品欧美极品欧美视频 | 99亚洲美女一区二区三区| 色花堂在线av中文字幕九九| 亚洲 欧美 精品 激情 偷拍| 特一级特级黄色网片| 姐姐的朋友2在线观看中文字幕| 精品久久久久久久久久中文蒉| 成人色综合中文字幕| 国产一区二区久久久裸臀| 绝色少妇高潮3在线观看| av在线播放国产不卡| 国产成人综合一区2区| 天天色天天舔天天射天天爽 | 美女大bxxxx内射| 性感美女福利视频网站| 青青青青青青青在线播放视频| 在线观看成人国产电影| 91精品啪在线免费| 亚洲国产欧美一区二区三区久久| 欧美在线精品一区二区三区视频 | 蜜桃色婷婷久久久福利在线| 亚洲国产香蕉视频在线播放| 亚洲午夜高清在线观看| 天天躁日日躁狠狠躁av麻豆| 亚洲国产精品久久久久蜜桃| 亚洲av男人的天堂你懂的| 国产精品三级三级三级| 青青草视频手机免费在线观看| 98视频精品在线观看| 99久久超碰人妻国产| 色花堂在线av中文字幕九九| 欧美va不卡视频在线观看| 免费无码人妻日韩精品一区二区| 国产熟妇一区二区三区av| 日美女屁股黄邑视频| 淫秽激情视频免费观看| 超鹏97历史在线观看| 国产精品视频一区在线播放| 一区二区三区四区五区性感视频| 久草视频在线免播放| 激情综合治理六月婷婷| 中文字幕日韩精品就在这里| 天天夜天天日天天日| 亚洲精品国产久久久久久| 国产污污污污网站在线| 国产V亚洲V天堂无码欠欠| 久久久久久九九99精品| 黄色资源视频网站日韩| 成人综合亚洲欧美一区| 成年人黄色片免费网站| 中文字幕在线免费第一页| 成人在线欧美日韩国产| 九色精品视频在线播放| 日韩欧美制服诱惑一区在线| 亚洲精品国偷自产在线观看蜜桃| 亚洲欧美国产麻豆综合| 无码日韩人妻精品久久| yellow在线播放av啊啊啊 | 黄色大片男人操女人逼| 中文字幕在线免费第一页| 免费观看丰满少妇做受| 天天干夜夜操啊啊啊| 中文亚洲欧美日韩无线码| 亚洲免费视频欧洲免费视频| 爱有来生高清在线中文字幕| av无限看熟女人妻另类av| 成人24小时免费视频| 亚洲欧美精品综合图片小说| 国产普通话插插视频| 青青青青青免费视频| 中国黄色av一级片| 男女第一次视频在线观看| 精品一区二区三区欧美| 日本丰满熟妇大屁股久久| 亚洲中文字字幕乱码| www日韩a级s片av| 日韩精品电影亚洲一区| 五十路人妻熟女av一区二区| jul—619中文字幕在线| 日本韩国在线观看一区二区| 唐人色亚洲av嫩草| 国产品国产三级国产普通话三级| 亚洲午夜电影之麻豆| 欧美男人大鸡吧插女人视频| 国产精品探花熟女在线观看| 国产精品黄页网站视频| 亚洲激情av一区二区| 91在线视频在线精品3| 特级无码毛片免费视频播放| 亚洲国产精品中文字幕网站| 亚洲一级av无码一级久久精品| 91九色国产porny蝌蚪| 国产精品伦理片一区二区| 天堂av在线播放免费| 适合午夜一个人看的视频| 狠狠躁狠狠爱网站视频 | 动漫精品视频在线观看| 成人性爱在线看四区| 男人天堂av天天操| 和邻居少妇愉情中文字幕| 国产黄色片在线收看| 欧洲日韩亚洲一区二区三区| 久草福利电影在线观看| 扒开腿挺进肉嫩小18禁视频| 美女日逼视频免费观看| 直接观看免费黄网站| 国产成人精品一区在线观看| 韩国AV无码不卡在线播放| 亚洲公开视频在线观看| yellow在线播放av啊啊啊| 亚洲一级特黄特黄黄色录像片| 在线国产日韩欧美视频| 欧美天堂av无线av欧美| 午夜免费观看精品视频| 免费无码人妻日韩精品一区二区| 人妻av无码专区久久绿巨人| 自拍偷拍日韩欧美亚洲| 日本福利午夜电影在线观看| 美女视频福利免费看| 欧美亚洲中文字幕一区二区三区 | sspd152中文字幕在线| 伊人综合免费在线视频| 中英文字幕av一区| 成年人啪啪视频在线观看| 成年人午夜黄片视频资源| 婷婷久久一区二区字幕网址你懂得 | 国产在线观看免费人成短视频| 馒头大胆亚洲一区二区| 人妻另类专区欧美制服| 亚洲精品成人网久久久久久小说| 天天操天天干天天插| 男人操女人逼逼视频网站| 欧美一区二区三区啪啪同性| 91精品激情五月婷婷在线| 成年人黄色片免费网站| 亚洲精品一区二区三区老狼| 亚洲久久午夜av一区二区| 青青草亚洲国产精品视频| 91精品综合久久久久3d动漫| 国产福利小视频二区| 人妻另类专区欧美制服| 天天干夜夜操天天舔| 欧美在线一二三视频| 青青青青操在线观看免费| 天天插天天狠天天操| 午夜在线精品偷拍一区二| 国产亚洲欧美另类在线观看| 午夜精品久久久久久99热| 免费大片在线观看视频网站| 国产精品伦理片一区二区| 黄色男人的天堂视频| 国产精品福利小视频a| 98视频精品在线观看| 偷拍3456eee| 日本高清成人一区二区三区| 中文字幕一区二区三区人妻大片 | 高清一区二区欧美系列 | 韩国男女黄色在线观看| 欧美视频一区免费在线| 人妻少妇一区二区三区蜜桃| 国产va在线观看精品| 又色又爽又黄又刺激av网站| 91精品免费久久久久久| 涩涩的视频在线观看视频| 国产janese在线播放| 天堂av狠狠操蜜桃| 国产美女一区在线观看| 80电影天堂网官网| 2022中文字幕在线| 精品久久久久久久久久久久人妻| 人人妻人人澡人人爽人人dvl| 欧美亚洲国产成人免费在线| 免费看国产av网站| sw137 中文字幕 在线| 天天综合天天综合天天网| 国产精品国产精品一区二区| 国产精品久久久久久久女人18| 操操网操操伊剧情片中文字幕网| 岛国免费大片在线观看| av中文字幕网址在线| 夜夜骑夜夜操夜夜奸| 91超碰青青中文字幕| 青春草视频在线免费播放| 欧美交性又色又爽又黄麻豆| 青青青青青青青青青青草青青| 国产av一区2区3区| 国产亚洲精品欧洲在线观看| 天天干夜夜操啊啊啊| yy6080国产在线视频| 欧美视频中文一区二区三区| 成人国产影院在线观看| 天天想要天天操天天干| 51国产成人精品视频| 一区二区三区日本伦理| 成熟丰满熟妇高潮xx×xx| 久久精品在线观看一区二区| 日本一区精品视频在线观看| 岛国黄色大片在线观看| 欧美怡红院视频在线观看| 自拍偷拍日韩欧美亚洲| 瑟瑟视频在线观看免费视频| 青青青aaaa免费| 97青青青手机在线视频| 日本三极片中文字幕| 精品一区二区三区午夜| 中文字幕日韩人妻在线三区| 97小视频人妻一区二区| 亚洲国产中文字幕啊啊啊不行了| 国产97在线视频观看| 在线免费观看国产精品黄色| 午夜在线观看岛国av,com| 2025年人妻中文字幕乱码在线| 久久久久久九九99精品| 亚洲人妻30pwc| gogo国模私拍视频| 青青青青青操视频在线观看| 强行扒开双腿猛烈进入免费版| 夜夜操,天天操,狠狠操| 日噜噜噜夜夜噜噜噜天天噜噜噜| 午夜精品亚洲精品五月色| 中文字幕免费在线免费| 婷婷六月天中文字幕| 97人人妻人人澡人人爽人人精品| 人妻素人精油按摩中出| www天堂在线久久| 久久久久久性虐视频| 国产在线观看免费人成短视频| 99re6热在线精品| 国产日韩一区二区在线看| 国产亚洲欧美45p| 换爱交换乱高清大片| 婷婷六月天中文字幕| 在线观看黄色成年人网站| 天天干天天操天天摸天天射| 99婷婷在线观看视频| 国产精品入口麻豆啊啊啊| av日韩在线免费播放| 热思思国产99re| 免费观看污视频网站| 久久久久久cao我的性感人妻| 日本韩国亚洲综合日韩欧美国产| 最新91精品视频在线| 天堂中文字幕翔田av| caoporm超碰国产| 97精品成人一区二区三区| 久久久人妻一区二区| 熟女人妻在线观看视频| 福利视频一区二区三区筱慧| 日日夜夜精品一二三| 天天色天天操天天舔| 中国产一级黄片免费视频播放| 中文字幕人妻av在线观看| 中文字幕第一页国产在线| 色秀欧美视频第一页| 五十路av熟女松本翔子| 一区二区三区精品日本| 熟女人妻在线中出观看完整版| 国产白嫩美女一区二区| 久久机热/这里只有| 国产精品福利小视频a| 中文字幕中文字幕人妻| 无码中文字幕波多野不卡| 国产成人综合一区2区| 久久久极品久久蜜桃| 92福利视频午夜1000看| 婷婷五月亚洲综合在线| 免费无毒热热热热热热久| 免费观看理论片完整版| 青青草精品在线视频观看| 亚洲国产成人最新资源| caoporn蜜桃视频| 免费av岛国天堂网站| 天天操天天操天天碰| 亚洲免费av在线视频| 四川乱子伦视频国产vip| 国产福利小视频免费观看| 青青草在观免费国产精品| 无码中文字幕波多野不卡| 最新欧美一二三视频| mm131美女午夜爽爽爽| 久草视频中文字幕在线观看| 亚洲av色香蕉一区二区三区| 福利视频广场一区二区| 国产高潮无码喷水AV片在线观看| 97超碰人人搞人人| 大胸性感美女羞爽操逼毛片| 中文字幕日韩精品就在这里| 精品人妻每日一部精品| 色婷婷六月亚洲综合香蕉| 日本午夜爽爽爽爽爽视频在线观看 | 中文字幕在线永久免费播放| 亚洲成人午夜电影在线观看 | 黄色片年轻人在线观看| 亚洲av第国产精品| 精品黑人一区二区三区久久国产| 亚洲国产在线精品国偷产拍| 日本高清在线不卡一区二区| 亚洲 自拍 色综合图| 91av中文视频在线| 久久艹在线观看视频| 干逼又爽又黄又免费的视频| 超黄超污网站在线观看| 人妻爱爱 中文字幕| 99婷婷在线观看视频| 国产之丝袜脚在线一区二区三区| 中国把吊插入阴蒂的视频| 护士小嫩嫩又紧又爽20p| 亚洲人妻av毛片在线| 黄色片年轻人在线观看| 亚洲欧洲av天堂综合| 视频久久久久久久人妻| 最新激情中文字幕视频| 亚洲一区av中文字幕在线观看| 亚洲精品久久综合久| 老司机深夜免费福利视频在线观看| 日韩人妻xxxxx| 天天躁夜夜躁日日躁a麻豆| 天天日天天操天天摸天天舔| 国产福利在线视频一区| 欧亚乱色一区二区三区| 欧美精品免费aaaaaa| 国产日韩欧美视频在线导航 | 一区二区麻豆传媒黄片| 一级黄色av在线观看| 日本一二三中文字幕| 午夜频道成人在线91| 毛茸茸的大外阴中国视频| 欧美一级片免费在线成人观看| 粉嫩av蜜乳av蜜臀| 东京热男人的av天堂| 91精品一区二区三区站长推荐| 精品一区二区三区在线观看| 无套猛戳丰满少妇人妻| 成熟丰满熟妇高潮xx×xx| 国产亚洲四十路五十路| 亚洲 图片 欧美 图片| 黄色片一级美女黄色片| 日韩一区二区三区三州| 欧美xxx成人在线| 亚洲男人在线天堂网| 国产+亚洲+欧美+另类| 亚洲熟女久久久36d| 日韩a级精品一区二区| 天天摸天天干天天操科普| 91老熟女连续高潮对白| 特大黑人巨大xxxx| 天天干天天搞天天摸| 五十路熟女人妻一区二| 在线视频这里只有精品自拍| 色秀欧美视频第一页| 在线免费视频 自拍| 最新的中文字幕 亚洲| 亚洲伊人色一综合网| 55夜色66夜色国产精品站| 欧美特色aaa大片| av日韩在线观看大全| 人人人妻人人澡人人| 2022中文字幕在线| 亚洲人妻国产精品综合| 91试看福利一分钟| 国产免费av一区二区凹凸四季| 只有精品亚洲视频在线观看| 爆乳骚货内射骚货内射在线| 97国产精品97久久| 国产又粗又黄又硬又爽| 黄工厂精品视频在线观看| 日日操综合成人av| 99热久久这里只有精品8| 中文字幕日韩精品就在这里| 五十路av熟女松本翔子| 性色av一区二区三区久久久| 亚洲午夜伦理视频在线| 亚洲天堂av最新网址| 精品亚洲国产中文自在线| 国语对白xxxx乱大交| 亚洲免费av在线视频| 最近中文2019年在线看| 97瑟瑟超碰在线香蕉| 自拍偷区二区三区麻豆| 亚洲最大黄 嗯色 操 啊| 亚洲精品乱码久久久久久密桃明| 欧美黄片精彩在线免费观看| aaa久久久久久久久| 国产精品福利小视频a| 中国熟女@视频91| 91超碰青青中文字幕| 国产亚洲视频在线观看| 少妇深喉口爆吞精韩国| 久久这里只有精品热视频| 美女福利视频导航网站 | 在线可以看的视频你懂的| 快点插进来操我逼啊视频| 青青青视频自偷自拍38碰| 91高清成人在线视频| 人人人妻人人澡人人| 欧美在线一二三视频| 人妻少妇亚洲精品中文字幕| 在线观看的a站 最新| 操日韩美女视频在线免费看| 78色精品一区二区三区| 久久热这里这里只有精品| 老熟妇xxxhd老熟女| 天天摸天天干天天操科普| 欧美另类一区二区视频| 十八禁在线观看地址免费 | 亚洲av极品精品在线观看| 人妻无码中文字幕专区| 91九色porny国产在线| 黑人大几巴狂插日本少妇| 青青擦在线视频国产在线| 国产精品黄片免费在线观看| 久草视频在线免播放| 一区二区三区国产精选在线播放 | 熟女俱乐部一二三区| 中文字幕—97超碰网| 老鸭窝在线观看一区| 自拍偷拍日韩欧美亚洲| 2o22av在线视频| 中文字幕av男人天堂| 在线观看视频网站麻豆| 少妇与子乱在线观看| 亚洲欧美另类自拍偷拍色图| 久久99久久99精品影院| 伊人精品福利综合导航| 自拍偷拍一区二区三区图片| 成人午夜电影在线观看 久久| 91麻豆精品秘密入口在线观看| 天天日天天敢天天干| 青青尤物在线观看视频网站| 人人妻人人爽人人澡人人精品| 在线观看免费视频色97| 久久久久只精品国产三级| 久久精品国产999| 欧美另类z0z变态| 另类av十亚洲av| 特一级特级黄色网片| 亚洲综合另类精品小说| 日本免费视频午夜福利视频| 精品久久久久久久久久久99| 日韩av有码中文字幕| 亚洲高清国产一区二区三区| 久久久久久97三级| av乱码一区二区三区| 免费在线看的黄片视频| 亚洲av人人澡人人爽人人爱| 成人H精品动漫在线无码播放| 天天干狠狠干天天操| 精品区一区二区三区四区人妻| 亚洲成人国产综合一区| 不卡一区一区三区在线| 青青草精品在线视频观看| 真实国产乱子伦一区二区| 亚洲天天干 夜夜操| 亚洲福利精品福利精品福利| 操日韩美女视频在线免费看| 一区二区三区久久久91| 狍和女人的王色毛片| 18禁美女黄网站色大片下载| 中文字幕一区的人妻欧美日韩| 亚洲免费福利一区二区三区| 免费黄高清无码国产| 国产日韩一区二区在线看| 日辽宁老肥女在线观看视频| 丝袜美腿视频诱惑亚洲无| 视频一区二区三区高清在线| 亚洲国产精品久久久久久6| 在线观看免费岛国av| 天天射,天天操,天天说| 综合国产成人在线观看| 亚洲伊人色一综合网| 天天干天天爱天天色| av在线免费资源站| 国产亚洲精品视频合集| 国产精品人久久久久久| 亚洲人妻30pwc| 精品一区二区三区午夜| 国产内射中出在线观看| 内射久久久久综合网| 婷婷激情四射在线观看视频| 国产女人露脸高潮对白视频| 久久农村老妇乱69系列| 在线观看亚洲人成免费网址| 日本乱人一区二区三区| 日本熟妇色熟妇在线观看| 班长撕开乳罩揉我胸好爽| 性欧美激情久久久久久久| 91国产在线免费播放| 国产精品一区二区三区蜜臀av| 免费费一级特黄真人片| 日本欧美视频在线观看三区| 日日日日日日日日夜夜夜夜夜夜| 蜜桃色婷婷久久久福利在线| 亚洲av色图18p| 99热碰碰热精品a中文| 成人30分钟免费视频| 五色婷婷综合狠狠爱| gav成人免费播放| 亚洲成a人片777777| 亚洲国产欧美一区二区三区久久| 91九色porny国产蝌蚪视频| 亚洲成人激情av在线| 日韩中文字幕精品淫| 日本三极片视频网站观看| 91天堂天天日天天操| 五十路人妻熟女av一区二区| 亚洲国产免费av一区二区三区| 中文字幕高清免费在线人妻 | 久久久久久97三级| 国产亚洲精品欧洲在线观看| 天天操天天干天天日狠狠插| 91免费放福利在线观看| 一区二区三区美女毛片| 色婷婷久久久久swag精品| 经典av尤物一区二区| 黄片色呦呦视频免费看| 亚洲午夜福利中文乱码字幕| 亚洲超碰97人人做人人爱| 欧美一级视频一区二区| 亚洲一区二区久久久人妻| 黄色片一级美女黄色片| 伊人综合aⅴ在线网| 色综合久久无码中文字幕波多| 人人爱人人妻人人澡39| 亚洲av极品精品在线观看| 日韩无码国产精品强奸乱伦| 国产chinesehd精品麻豆| 免费在线播放a级片| 91在线免费观看成人| 老鸭窝在线观看一区| av一本二本在线观看| 在线观看国产网站资源| 老司机午夜精品视频资源| 国产熟妇乱妇熟色T区| 五十路老熟女码av| 99人妻视频免费在线| 国产麻豆剧果冻传媒app| 日韩无码国产精品强奸乱伦| 日韩欧美一级精品在线观看| 日本丰满熟妇BBXBBXHD| 2018在线福利视频| 亚洲成人av在线一区二区| 日本黄色特一级视频| 最新91九色国产在线观看| 国产成人精品亚洲男人的天堂| 国产a级毛久久久久精品| 瑟瑟视频在线观看免费视频| 夜色福利视频在线观看| 国产视频网站一区二区三区| 亚洲欧美国产麻豆综合| 青草亚洲视频在线观看| 亚洲天堂av最新网址| 最新中文字幕乱码在线| 日韩人妻丝袜中文字幕| 一二三区在线观看视频| 亚洲精品国品乱码久久久久| 97人妻总资源视频| 国产麻豆剧传媒精品国产av蜜桃| 国产成人精品亚洲男人的天堂| 久久香蕉国产免费天天| 国产黄网站在线观看播放| 亚洲午夜精品小视频| 偷拍自拍亚洲视频在线观看| 国产精品视频一区在线播放| 精品美女在线观看视频在线观看| 宅男噜噜噜666国产| 女警官打开双腿沦为性奴| 成年人该看的视频黄免费| 中文字幕奴隷色的舞台50| av完全免费在线观看av| 国产刺激激情美女网站| 免费看国产又粗又猛又爽又黄视频 | 2020国产在线不卡视频| 色秀欧美视频第一页| 中文字幕乱码人妻电影| 成熟熟女国产精品一区| 在线免费视频 自拍| 欧美在线一二三视频| 成人国产激情自拍三区| 91九色国产porny蝌蚪| 91色老99久久九九爱精品| 亚洲av无码成人精品区辽| 国产激情av网站在线观看| 中文字幕人妻熟女在线电影| 在线观看日韩激情视频| av中文字幕国产在线观看| 亚洲人妻视频在线网| 99精品免费久久久久久久久a| 精品首页在线观看视频| 97人妻人人澡爽人人精品| 久久久精品精品视频视频| 中文字幕在线欧美精品| 社区自拍揄拍尻屁你懂的| 插逼视频双插洞国产操逼插洞| 天天插天天狠天天操| 亚洲一区二区三区精品乱码| 亚洲欧洲av天堂综合| 日韩黄色片在线观看网站| 久久久精品欧洲亚洲av| 天天日天天添天天爽| 狠狠嗨日韩综合久久| caoporm超碰国产| 久久精品国产999| 三级av中文字幕在线观看| 国产精彩对白一区二区三区| 人妻无码中文字幕专区| 在线播放一区二区三区Av无码| 欧美日韩激情啪啪啪| 中文字幕第1页av一天堂网| 99久久99久国产黄毛片| 亚洲国产成人无码麻豆艾秋| 少妇与子乱在线观看| 精品一区二区三四区| 91av精品视频在线| 最近中文2019年在线看| 超级碰碰在线视频免费观看| 激情伦理欧美日韩中文字幕| 亚洲av午夜免费观看| 亚洲日产av一区二区在线| 欧美精产国品一二三区| 日本少妇精品免费视频| 韩国一级特黄大片做受| 欧美成人一二三在线网| 成人亚洲国产综合精品| 免费福利av在线一区二区三区| 亚洲精品亚洲人成在线导航| 国产97在线视频观看| 18禁精品网站久久| 91麻豆精品久久久久| 亚洲高清自偷揄拍自拍| av手机免费在线观看高潮| 不卡一不卡二不卡三| 99人妻视频免费在线| 性感美女诱惑福利视频| 国产第一美女一区二区三区四区| 免费在线观看视频啪啪| av网址在线播放大全| 日韩特级黄片高清在线看| 啊啊好慢点插舔我逼啊啊啊视频| 中文字幕乱码av资源| 1024久久国产精品| 亚洲人妻av毛片在线| 亚洲一级特黄特黄黄色录像片| 亚洲av午夜免费观看| 极品性荡少妇一区二区色欲| 中文字幕中文字幕 亚洲国产| 日本少妇精品免费视频| 国产真实灌醉下药美女av福利| 人人人妻人人澡人人| 在线不卡成人黄色精品| 人人妻人人爽人人澡人人精品| 精品av国产一区二区三区四区| 馒头大胆亚洲一区二区| 欧美精品久久久久久影院| 亚洲欧美成人综合在线观看| 深夜男人福利在线观看| 都市家庭人妻激情自拍视频| 欧美性受xx黑人性猛交| 鸡巴操逼一级黄色气| 欧美男同性恋69视频| 日韩av大胆在线观看| 亚洲人妻国产精品综合| 动漫黑丝美女的鸡巴| 国产品国产三级国产普通话三级| 麻豆精品成人免费视频| 国产精品黄片免费在线观看| 在线观看操大逼视频| 在线观看操大逼视频| 亚洲av成人网在线观看| 日韩人妻在线视频免费| 888亚洲欧美国产va在线播放| 涩涩的视频在线观看视频| 一区二区三区日韩久久| 骚货自慰被发现爆操| 婷婷六月天中文字幕| 日本丰满熟妇大屁股久久| 久久h视频在线观看| 国产一区自拍黄视频免费观看 | 亚洲精品在线资源站| 超碰97人人做人人爱| 亚洲av色图18p| 亚洲一区二区三区在线高清| 青青草成人福利电影| 男人和女人激情视频| 视频 国产 精品 熟女 | 高潮视频在线快速观看国家快速| weyvv5国产成人精品的视频| sspd152中文字幕在线| 自拍偷拍亚洲欧美在线视频| 亚洲日产av一区二区在线| 这里有精品成人国产99| 亚洲欧洲一区二区在线观看| 少妇一区二区三区久久久| 亚洲第一黄色在线观看| 亚洲高清一区二区三区视频在线| 亚洲熟妇无码一区二区三区| 不卡一不卡二不卡三| 日本性感美女视频网站| av中文字幕网址在线| 99国内小视频在现欢看| 国产免费av一区二区凹凸四季| 日本熟女精品一区二区三区| 一区二区三区麻豆福利视频| 日韩人妻丝袜中文字幕| 欧美特级特黄a大片免费| 亚洲精品 欧美日韩| 天堂v男人视频在线观看| 亚洲变态另类色图天堂网| 青青草原网站在线观看| 水蜜桃一区二区三区在线观看视频| 极品丝袜一区二区三区| 干逼又爽又黄又免费的视频| 在线观看日韩激情视频| 四虎永久在线精品免费区二区| 一区二区三区麻豆福利视频| 亚洲国产精品中文字幕网站| 91人妻精品久久久久久久网站| 久久久久久久亚洲午夜综合福利| 哥哥姐姐综合激情小说| 顶级尤物粉嫩小尤物网站| 亚洲av自拍天堂网| 美女福利视频导航网站| 人妻少妇精品久久久久久 | 少妇人妻久久久久视频黄片| 国产精品久久久久国产三级试频| 免费黄色成人午夜在线网站| 夜夜嗨av蜜臀av| 女生自摸在线观看一区二区三区 | 天天色天天舔天天射天天爽| 国产91久久精品一区二区字幕| 亚洲激情av一区二区| 亚洲中文精品人人免费| 日韩av中文在线免费观看| 亚洲精品无码久久久久不卡| 91精品综合久久久久3d动漫| av一区二区三区人妻| 久久久精品欧洲亚洲av| 55夜色66夜色国产精品站| 欧美精品亚洲精品日韩在线| 老司机免费视频网站在线看| 自拍偷拍一区二区三区图片| 乱亲女秽乱长久久久| 日韩精品一区二区三区在线播放| www骚国产精品视频| 久久久久久久99精品| 日韩成人免费电影二区| 成人伊人精品色xxxx视频| 2022精品久久久久久中文字幕| av破解版在线观看| avjpm亚洲伊人久久| 国产在线观看黄色视频| 午夜毛片不卡免费观看视频 | 成人性黑人一级av| tube69日本少妇| 大陆精品一区二区三区久久| 日韩三级电影华丽的外出| 欧美香蕉人妻精品一区二区| 国产真实乱子伦a视频| 超级碰碰在线视频免费观看| 春色激情网欧美成人| 新婚人妻聚会被中出| 日本精品一区二区三区在线视频。 | 精品日产卡一卡二卡国色天香 | 亚洲成人免费看电影| 制服丝袜在线人妻中文字幕| 男大肉棒猛烈插女免费视频| 人人妻人人人操人人人爽| 免费观看国产综合视频| 青青操免费日综合视频观看| 人妻在线精品录音叫床| 亚洲国产精品久久久久蜜桃| 中文字幕 人妻精品| 91精品国产高清自在线看香蕉网| 日本人竟这样玩学生妹| 亚洲欧美一区二区三区电影| 天天日天天操天天摸天天舔| 亚洲午夜电影在线观看| 欧美日韩一级黄片免费观看| 亚洲成人av一区在线| 在线免费观看日本片| 偷拍自拍福利视频在线观看| 丰满少妇翘臀后进式| 夜色福利视频在线观看| 亚洲免费在线视频网站| 天天干天天日天天干天天操| 成人激情文学网人妻| 美女张开腿让男生操在线看| 日日摸夜夜添夜夜添毛片性色av| 欧美日韩一区二区电影在线观看| 久精品人妻一区二区三区| 成人性黑人一级av| 国产品国产三级国产普通话三级| 一区二区三区国产精选在线播放| 亚洲av午夜免费观看| 91精品国产高清自在线看香蕉网| 国产精品伦理片一区二区| 夜夜嗨av蜜臀av| 国产美女午夜福利久久| 巨乳人妻日下部加奈被邻居中出| 国产精品三级三级三级| 亚洲免费福利一区二区三区| 国产janese在线播放| 欧美黑人巨大性xxxxx猛交| 国产+亚洲+欧美+另类| 插小穴高清无码中文字幕| 日本a级视频老女人| 色综合久久久久久久久中文| 亚洲人妻av毛片在线| 99婷婷在线观看视频| 国产一级麻豆精品免费| 中国无遮挡白丝袜二区精品| 国产视频在线视频播放| 欧美日韩高清午夜蜜桃大香蕉| 人妻在线精品录音叫床| 熟女91pooyn熟女| 日韩国产乱码中文字幕| 日本少妇的秘密免费视频| 粉嫩av懂色av蜜臀av| 欧洲欧美日韩国产在线| 亚洲国产成人av在线一区| 亚洲午夜高清在线观看| 91国产在线视频免费观看| 鸡巴操逼一级黄色气| 国产普通话插插视频| 成人影片高清在线观看 | 青春草视频在线免费播放| 亚洲日产av一区二区在线 | 亚洲va国产va欧美va在线| 视频一区二区综合精品| 91亚洲精品干熟女蜜桃频道| 午夜精品一区二区三区福利视频| 日本脱亚入欧是指什么| 久久人人做人人妻人人玩精品vr| 婷婷久久一区二区字幕网址你懂得| 精品国产成人亚洲午夜| 天天干夜夜操啊啊啊| 午夜国产福利在线观看| av男人天堂狠狠干| 91九色国产熟女一区二区| 粗大的内捧猛烈进出爽大牛汉子| 国产成人精品av网站| 姐姐的朋友2在线观看中文字幕| 黑人大几巴狂插日本少妇| 天天插天天狠天天操| 摧残蹂躏av一二三区| 在线观看av2025| 成年美女黄网站18禁久久| 2022中文字幕在线| 午夜精品一区二区三区更新| 欧美日韩一级黄片免费观看| 超级av免费观看一区二区三区| 色花堂在线av中文字幕九九| 国产污污污污网站在线| 91麻豆精品久久久久| 伊人综合aⅴ在线网| 激情五月婷婷综合色啪| 欧美成人猛片aaaaaaa| 亚洲综合另类欧美久久| 老师让我插进去69AV| 久久艹在线观看视频| 自拍偷拍亚洲另类色图| 自拍偷拍日韩欧美一区二区| 快插进小逼里大鸡吧视频| 中文字幕一区的人妻欧美日韩| 晚上一个人看操B片| 日韩欧美一级aa大片| 男人在床上插女人视频| 日本一区精品视频在线观看| 天天夜天天日天天日| 2021最新热播中文字幕| 北条麻妃高跟丝袜啪啪| 国产亚洲四十路五十路| av俺也去在线播放| 中文字幕第三十八页久久 | 初美沙希中文字幕在线 | 亚洲嫩模一区二区三区| 日本人妻欲求不满中文字幕| 天天日天天干天天插舔舔| 在线可以看的视频你懂的| 亚洲av无女神免非久久| 青春草视频在线免费播放| 日噜噜噜夜夜噜噜噜天天噜噜噜| 一区二区视频在线观看免费观看| 在线观看的a站 最新| 亚洲av极品精品在线观看| 少妇一区二区三区久久久| 国际av大片在线免费观看| 日本真人性生活视频免费看| 天天摸天天干天天操科普| 91国产在线免费播放| 天天摸天天亲天天舔天天操天天爽| 欧美成人小视频在线免费看| 天天日天天透天天操| 五十路熟女人妻一区二区9933| 中文字幕亚洲中文字幕| 国产高清女主播在线| 40道精品招牌菜特色| 粗大的内捧猛烈进出爽大牛汉子| 91在线免费观看成人| 换爱交换乱高清大片| sw137 中文字幕 在线| 夜夜嗨av蜜臀av| 国内资源最丰富的网站| 女同性ⅹxx女同h偷拍| 婷婷久久久综合中文字幕| 91中文字幕最新合集| 久久久久久久久久久免费女人| 青青青青爽手机在线| 亚洲国产美女一区二区三区软件| 精品国产在线手机在线| 四川乱子伦视频国产vip| 欧美日本aⅴ免费视频| 亚洲伊人色一综合网| 福利视频网久久91| 久久机热/这里只有| 国产黄色a级三级三级三级 | 欧美韩国日本国产亚洲| 黑人乱偷人妻中文字幕| 天天日天天干天天要| 亚洲成人av一区在线| aiss午夜免费视频| 青青热久免费精品视频在线观看| 天码人妻一区二区三区在线看| 国产真实灌醉下药美女av福利| 中文字幕第三十八页久久| 91极品新人『兔兔』精品新作| 中文字幕一区二区亚洲一区| 2018最新中文字幕在线观看| 成人av电影免费版| 中文字幕在线欧美精品| 只有精品亚洲视频在线观看| 国产综合精品久久久久蜜臀| 日本人妻欲求不满中文字幕| 少妇高潮无套内谢麻豆| 精品美女福利在线观看| 高潮视频在线快速观看国家快速| 亚洲丝袜老师诱惑在线观看| 91桃色成人网络在线观看| 亚洲欧美另类手机在线| 精品视频中文字幕在线播放| 天天操,天天干,天天射| 天堂av中文在线最新版| 欧美香蕉人妻精品一区二区| 国产美女午夜福利久久| 91色网站免费在线观看| 国产成人精品午夜福利训2021 | 亚洲狠狠婷婷综合久久app | 日日操综合成人av| 一区二区三区日本伦理| 亚洲欧美综合在线探花| 亚洲 欧美 自拍 偷拍 在线| 绝色少妇高潮3在线观看| 中文字幕—97超碰网| 伊人综合免费在线视频| 伊人开心婷婷国产av| 国产精品亚洲在线观看| 中国熟女@视频91| 亚洲综合色在线免费观看| 国产精彩福利精品视频| 高清成人av一区三区 | 久草视频 久草视频2| 亚洲福利天堂久久久久久| 日韩欧美制服诱惑一区在线| 天天色天天操天天舔| 99re6热在线精品| 色呦呦视频在线观看视频| 青青热久免费精品视频在线观看| 久久久久久九九99精品| av老司机精品在线观看| sspd152中文字幕在线| 被大鸡吧操的好舒服视频免费| 人妻凌辱欧美丰满熟妇| 东京干手机福利视频| 888欧美视频在线| 日韩影片一区二区三区不卡免费| 久草福利电影在线观看| 欧美老妇精品另类不卡片| 国产刺激激情美女网站| 91久久精品色伊人6882| 传媒在线播放国产精品一区| 欧美亚洲少妇福利视频| 老司机在线精品福利视频| 国产一区二区火爆视频| 在线制服丝袜中文字幕| 2020中文字幕在线播放| 伊人综合免费在线视频| 又粗又硬又猛又黄免费30| 超碰97人人澡人人| 成年人该看的视频黄免费| 在线观看视频污一区| 91人妻人人做人人爽在线| 天天日天天做天天日天天做| 亚洲男人在线天堂网| 啊啊啊视频试看人妻| 99热久久这里只有精品| 国产a级毛久久久久精品| 硬鸡巴动态操女人逼视频| 伊人成人在线综合网| 黄色录像鸡巴插进去| 国产成人自拍视频在线免费观看| 传媒在线播放国产精品一区| 欧美3p在线观看一区二区三区| 伊人情人综合成人久久网小说| 青青草人人妻人人妻| 91亚洲国产成人精品性色| 97瑟瑟超碰在线香蕉| 一区二区三区四区五区性感视频| 午夜毛片不卡免费观看视频| 欧洲国产成人精品91铁牛tv| 婷婷综合蜜桃av在线| av成人在线观看一区| 国产一区成人在线观看视频| 巨乳人妻日下部加奈被邻居中出| 在线观看欧美黄片一区二区三区| 中文字幕之无码色多多| 大鸡巴操娇小玲珑的女孩逼| 日韩av熟妇在线观看| 欧洲精品第一页欧洲精品亚洲 | 日韩av有码一区二区三区4| 护士特殊服务久久久久久久| 欧美在线偷拍视频免费看| 99热国产精品666| 欧美亚洲国产成人免费在线| 人妻丝袜榨强中文字幕| 91精品高清一区二区三区| 久久久久久97三级| 阴茎插到阴道里面的视频| 美女张开两腿让男人桶av| 日本一二三区不卡无| 在线免费观看日本伦理| 91社福利《在线观看| 欧美日韩熟女一区二区三区| 日本丰满熟妇大屁股久久| 在线制服丝袜中文字幕| 日韩欧美亚洲熟女人妻| 亚洲超碰97人人做人人爱| 亚洲欧美自拍另类图片| 激情五月婷婷免费视频| 成人亚洲国产综合精品| 欧美视频一区免费在线| 国产又粗又黄又硬又爽| 久久久久只精品国产三级| 在线观看视频 你懂的| 成人30分钟免费视频| 天天色天天操天天透| 亚洲一区二区三区在线高清| 亚洲精品久久综合久| 成人综合亚洲欧美一区| 黄片大全在线观看观看| 夫妻在线观看视频91| 瑟瑟视频在线观看免费视频| 91国产在线免费播放| 午夜国产免费福利av| 看一级特黄a大片日本片黑人| 欧美一区二区三区在线资源| 九九热99视频在线观看97| 九一传媒制片厂视频在线免费观看| 亚洲欧美色一区二区| 成年人的在线免费视频| 亚洲精品午夜久久久久| 99热99re在线播放| 91九色porny国产在线| 人妻无码中文字幕专区| 成人av久久精品一区二区| 99精品一区二区三区的区| 精品亚洲在线免费观看| 中文字幕av男人天堂| 亚洲av黄色在线网站| 性欧美日本大妈母与子| 大鸡巴后入爆操大屁股美女| 亚洲中文字幕综合小综合| 在线观看一区二区三级| 日韩av免费观看一区| 激情五月婷婷免费视频| 激情五月婷婷综合色啪| 40道精品招牌菜特色| 麻豆性色视频在线观看| 美味人妻2在线播放| 国产麻豆91在线视频| 亚洲自拍偷拍精品网| 亚洲成人国产综合一区| 手机看片福利盒子日韩在线播放| 性生活第二下硬不起来| japanese日本熟妇另类| 青青草亚洲国产精品视频| 天天射夜夜操综合网| 中国视频一区二区三区| 日韩人妻在线视频免费| 人妻无码色噜噜狠狠狠狠色| 日韩美女搞黄视频免费| 色呦呦视频在线观看视频| 日日摸夜夜添夜夜添毛片性色av| 一级黄片大鸡巴插入美女| 2022中文字幕在线| 亚洲人一区二区中文字幕| 日本美女成人在线视频| 国产精品入口麻豆啊啊啊| 成年人黄色片免费网站| 精品久久久久久久久久久久人妻| 四川乱子伦视频国产vip| 精品区一区二区三区四区人妻 | 亚洲福利天堂久久久久久 | 黄色黄色黄片78在线| 在线观看免费视频网| 丝袜国产专区在线观看| 午夜极品美女福利视频| 三级等保密码要求条款| 精品美女久久久久久| 2022中文字幕在线| 天天通天天透天天插| 成人福利视频免费在线| 人人人妻人人澡人人| av网站色偷偷婷婷网男人的天堂| 一区二区三区激情在线| ka0ri在线视频| 日韩美女综合中文字幕pp| 精品一区二区三区三区88| 伊人精品福利综合导航| 亚洲av自拍天堂网| 91福利视频免费在线观看| 9久在线视频只有精品| 国产精品系列在线观看一区二区| 天天操天天干天天插| 日韩不卡中文在线视频网站| 91高清成人在线视频| 91极品大一女神正在播放| 在线观看成人国产电影| 国产刺激激情美女网站| 亚洲精品中文字幕下载| 国产在线一区二区三区麻酥酥| 天天日天天日天天擦| 激情图片日韩欧美人妻| 好太好爽好想要免费| 午夜的视频在线观看| av手机免费在线观看高潮| 国产欧美日韩第三页| 日本成人一区二区不卡免费在线| 日韩激情文学在线视频| 狠狠的往里顶撞h百合| 国产极品精品免费视频| 18禁美女黄网站色大片下载| 在线免费91激情四射| 桃色视频在线观看一区二区| 久草视频中文字幕在线观看| 午夜精品久久久久麻豆影视| av资源中文字幕在线观看| 九九热99视频在线观看97| 男人的天堂av日韩亚洲| 丰满的继坶3中文在线观看| 动漫黑丝美女的鸡巴| 亚洲欧美激情中文字幕| 2021年国产精品自拍| 91国内精品自线在拍白富美| 偷拍自拍 中文字幕| 亚洲欧洲av天堂综合| 欧美一级片免费在线成人观看| 可以免费看的www视频你懂的| 日韩北条麻妃一区在线| 大鸡巴操娇小玲珑的女孩逼| 国产精品伦理片一区二区| 日韩激情文学在线视频| 亚洲 欧美 自拍 偷拍 在线| 国产又粗又硬又猛的毛片视频| 专门看国产熟妇的网站| 日本阿v视频在线免费观看| 精品91自产拍在线观看一区| 免费av岛国天堂网站| 精品高潮呻吟久久av| 天天日天天做天天日天天做| 成人资源在线观看免费官网| 在线免费观看欧美小视频| 国产高清女主播在线| 大鸡巴后入爆操大屁股美女| 超碰97人人澡人人| 亚洲av黄色在线网站| 天天摸天天日天天操| 国产欧美日韩第三页| 国产片免费观看在线观看| 亚洲av天堂在线播放| av网站色偷偷婷婷网男人的天堂| 亚洲老熟妇日本老妇| 日韩欧美一级aa大片| 成人免费做爰高潮视频| 精品国产成人亚洲午夜| 亚洲一区二区三区五区| 99精品国自产在线人| 成人福利视频免费在线| 人妻自拍视频中国大陆| 国产男女视频在线播放| 99国产精品窥熟女精品| 成年人的在线免费视频| 操操网操操伊剧情片中文字幕网| 国产品国产三级国产普通话三级| 播放日本一区二区三区电影| 亚洲精品 日韩电影| 任我爽精品视频在线播放| 亚洲无码一区在线影院| 在线国产中文字幕视频| 最新日韩av传媒在线| 国产免费av一区二区凹凸四季| 五十路息与子猛烈交尾视频| 天天日天天干天天舔天天射| 久草视频中文字幕在线观看| 又大又湿又爽又紧A视频| 狠狠嗨日韩综合久久| 亚洲av人人澡人人爽人人爱| 午夜精品久久久久麻豆影视| 91色秘乱一区二区三区| 亚洲va欧美va人人爽3p| 最新的中文字幕 亚洲| 一区二区三区四区视频在线播放| 国产精品人妻66p| 亚洲欧美清纯唯美另类| 午夜精品久久久久久99热| 91成人精品亚洲国产| 丝袜美腿欧美另类 中文字幕| 亚洲国产在线精品国偷产拍| 亚洲另类伦春色综合小| 久久久噜噜噜久久熟女av| 开心 色 六月 婷婷| 在线观看视频污一区| mm131美女午夜爽爽爽| 国产97视频在线精品| 伊人综合aⅴ在线网| 中字幕人妻熟女人妻a62v网| 男大肉棒猛烈插女免费视频 | 无忧传媒在线观看视频| 一区二区三区四区中文| 丰满的继坶3中文在线观看| 亚洲av香蕉一区区二区三区犇| aⅴ精产国品一二三产品| 中文字幕 人妻精品| 中文字幕视频一区二区在线观看| 97人人模人人爽人人喊| 狠狠操操操操操操操操操| 欧美激情精品在线观看| 国产精品黄色的av| 日韩二区视频一线天婷婷五| 欧美区一区二区三视频| 青青在线视频性感少妇和隔壁黑丝| 91精品视频在线观看免费| 日韩精品二区一区久久| 亚洲精品乱码久久久本| 欧美成人黄片一区二区三区| 在线可以看的视频你懂的 | 少妇露脸深喉口爆吞精| 日本在线一区二区不卡视频| 一区二区久久成人网| 日韩成人综艺在线播放| 91啪国自产中文字幕在线| 婷婷色国产黑丝少妇勾搭AV| gay gay男男瑟瑟在线网站| 东京热男人的av天堂| 啪啪啪啪啪啪啪啪啪啪黄色| 91快播视频在线观看| 熟女91pooyn熟女| 38av一区二区三区| av大全在线播放免费| 日本乱人一区二区三区| 全国亚洲男人的天堂| 91麻豆精品久久久久| 2022国产精品视频| 国产麻豆精品人妻av| 国产精彩对白一区二区三区| 91免费观看国产免费| 青娱乐在线免费视频盛宴| 国产欧美精品一区二区高清| 玩弄人妻熟妇性色av少妇| 五月精品丁香久久久久福利社| 风流唐伯虎电视剧在线观看| 不卡精品视频在线观看| av天堂中文免费在线| 国产视频精品资源网站| 男女啪啪视频免费在线观看| 免费岛国喷水视频在线观看| 青青青青青青草国产| 国产高清97在线观看视频| 黄色在线观看免费观看在线| 伊拉克及约旦宣布关闭领空| 岛国黄色大片在线观看| 亚洲狠狠婷婷综合久久app| 久久久久五月天丁香社区| 亚洲另类图片蜜臀av| 亚洲av成人免费网站| 成人sm视频在线观看| 久久久久久久久久一区二区三区| 黄色中文字幕在线播放| 女同久久精品秋霞网| 噜噜色噜噜噜久色超碰| 亚洲中文字幕国产日韩| 同居了嫂子在线播高清中文| 日本熟妇色熟妇在线观看| 一区二区在线视频中文字幕| 日韩在线视频观看有码在线| 黄色片黄色片wyaa| 91麻豆精品秘密入口在线观看| 亚洲欧美激情国产综合久久久| 家庭女教师中文字幕在线播放| 密臀av一区在线观看| 97资源人妻免费在线视频| 中文字幕一区的人妻欧美日韩| 一区二区三区日本伦理| 欧美一区二区中文字幕电影| 国内精品在线播放第一页| 岛国毛片视频免费在线观看| 2018在线福利视频| 国产日韩欧美视频在线导航| 久久久久91精品推荐99| 亚洲一级av大片免费观看| 欧美女同性恋免费a| 福利视频一区二区三区筱慧| 少妇系列一区二区三区视频| 欧美黑人巨大性xxxxx猛交| 久久亚洲天堂中文对白| 亚洲的电影一区二区三区| 视频 国产 精品 熟女 | 不卡一区一区三区在线| 在线观看的a站 最新| 国产麻豆乱子伦午夜视频观看| 97国产在线av精品| 国产午夜福利av导航| 久草视频在线免播放| 在线观看亚洲人成免费网址| 亚洲综合乱码一区二区| 国产精品黄片免费在线观看| av在线shipin| 97色视频在线观看| 日本a级视频老女人| 又色又爽又黄又刺激av网站| 精品国产乱码一区二区三区乱| 亚洲欧美激情国产综合久久久| 大香蕉玖玖一区2区| 宅男噜噜噜666免费观看| 亚洲美女高潮喷浆视频| 成人免费公开视频无毒| 天天干天天日天天谢综合156| 欧美黑人巨大性xxxxx猛交| 9色在线视频免费观看| 在线视频这里只有精品自拍| 九色视频在线观看免费| 熟女人妻在线观看视频| 成人资源在线观看免费官网| 亚洲精品色在线观看视频| 中文字幕之无码色多多| 午夜场射精嗯嗯啊啊视频| tube69日本少妇| 久久久久久久久久久久久97| 久久永久免费精品人妻专区| 曰本无码人妻丰满熟妇啪啪| 无忧传媒在线观看视频| 18禁网站一区二区三区四区| 老司机你懂得福利视频| 成人高清在线观看视频| 亚洲天堂av最新网址| 国产成人精品亚洲男人的天堂| 亚洲va天堂va国产va久| 国产亚洲精品视频合集| 免费黄高清无码国产| 日韩三级电影华丽的外出| 亚洲熟色妇av日韩熟色妇在线| 精品久久久久久久久久久a√国产 日本女大学生的黄色小视频 | 中文字幕高清在线免费播放 | 成人资源在线观看免费官网| 在线不卡日韩视频播放| 国产精品探花熟女在线观看| 美女张开两腿让男人桶av| 国产一区二区视频观看| 99久久成人日韩欧美精品| 国产视频精品资源网站| 欧美成人综合视频一区二区| 操操网操操伊剧情片中文字幕网| 久久精品美女免费视频| 日韩欧美在线观看不卡一区二区 | 2o22av在线视频| 亚洲另类图片蜜臀av| 日本韩国免费福利精品| 亚洲免费视频欧洲免费视频 | 欧美视频中文一区二区三区| 亚洲av成人免费网站| 91自产国产精品视频| 欧美乱妇无乱码一区二区| 人人妻人人爽人人澡人人精品| 日韩精品中文字幕福利| 国产又粗又猛又爽又黄的视频在线 | 福利视频一区二区三区筱慧 | 专门看国产熟妇的网站| 中文字幕AV在线免费看 | 性色av一区二区三区久久久| 午夜国产福利在线观看| av在线观看网址av| 久久亚洲天堂中文对白| 肏插流水妹子在线乐播下载| 91九色porny国产蝌蚪视频| 亚洲欧美在线视频第一页| 一级黄片久久久久久久久| 国产精品人妻一区二区三区网站| 精品久久婷婷免费视频| 中文字幕在线乱码一区二区| 91大屁股国产一区二区| 国产福利在线视频一区| 一个色综合男人天堂| 欧美亚洲中文字幕一区二区三区 | av一区二区三区人妻| 久久这里有免费精品| 成人免费做爰高潮视频| 狠狠躁狠狠爱网站视频| 99热99re在线播放| 久久精品在线观看一区二区| 国产精品久久久久久久女人18| 777奇米久久精品一区| 一本久久精品一区二区| 午夜精品九一唐人麻豆嫩草成人| 中文字幕在线观看极品视频| 国产麻豆乱子伦午夜视频观看| 国产午夜亚洲精品不卡在线观看| 人妻熟女中文字幕aⅴ在线| 一级a看免费观看网站| 日本免费视频午夜福利视频| 少妇ww搡性bbb91| 天美传媒mv视频在线观看| av乱码一区二区三区| 2020av天堂网在线观看| 欧美性感尤物人妻在线免费看| 中文字幕视频一区二区在线观看| 久久麻豆亚洲精品av| 午夜美女少妇福利视频| 欧美在线一二三视频| 社区自拍揄拍尻屁你懂的| 欧美黑人与人妻精品| 天天日天天爽天天干| 国产变态另类在线观看| 午夜免费体验区在线观看| av中文字幕电影在线看| 91快播视频在线观看| 亚洲熟女综合色一区二区三区四区| 97国产福利小视频合集| 亚洲熟女女同志女同| av完全免费在线观看av| 99久久超碰人妻国产| 国产欧美日韩第三页| 日本一区二区三区免费小视频| 女生自摸在线观看一区二区三区| 香港一级特黄大片在线播放| 亚洲高清国产拍青青草原| 日本少妇精品免费视频| 国产一区二区久久久裸臀| 女同性ⅹxx女同hd| 大尺度激情四射网站| 亚洲天堂精品久久久| 日本黄色特一级视频| 亚洲中文字幕人妻一区| 中国黄片视频一区91| 国产91嫩草久久成人在线视频| 好吊视频—区二区三区| 成人免费做爰高潮视频| 日本午夜福利免费视频| 少妇与子乱在线观看| 亚洲男人的天堂a在线| 91中文字幕免费在线观看| 国产精品视频资源在线播放| 亚洲视频在线观看高清| 91老熟女连续高潮对白| 亚洲另类综合一区小说| 黄工厂精品视频在线观看| 狠狠鲁狠狠操天天晚上干干| 久精品人妻一区二区三区| 夜夜操,天天操,狠狠操| 精品久久久久久久久久中文蒉| 啊啊好慢点插舔我逼啊啊啊视频| 亚洲超碰97人人做人人爱| 国产又粗又黄又硬又爽| 骚货自慰被发现爆操| 亚洲欧美人精品高清| 搡老熟女一区二区在线观看| 成年人啪啪视频在线观看| 精品亚洲在线免费观看| av老司机精品在线观看| 欧美成人一二三在线网| 在线视频精品你懂的| 久久久久久久精品成人热| 天天日天天鲁天天操| 99婷婷在线观看视频| 性感美女高潮视频久久久| 66久久久久久久久久久| 丝袜国产专区在线观看| 亚洲精品av在线观看| 国产乱子伦一二三区| 久久国产精品精品美女| 91成人在线观看免费视频| 欧美特级特黄a大片免费| aiss午夜免费视频| 日韩午夜福利精品试看| 亚洲一区制服丝袜美腿| 天天日天天添天天爽| 日本脱亚入欧是指什么| 在线观看的黄色免费网站| 动漫av网站18禁| 2o22av在线视频| 国产一级麻豆精品免费| 色综合久久五月色婷婷综合| 国产熟妇乱妇熟色T区| 一色桃子久久精品亚洲| 国产九色91在线视频| 66久久久久久久久久久| 午夜久久久久久久99| 国内自拍第一页在线观看| 日本美女成人在线视频| 99热久久这里只有精品8| 农村胖女人操逼视频| av老司机亚洲一区二区| 鸡巴操逼一级黄色气| 日韩近亲视频在线观看| 亚洲偷自拍高清视频| 99人妻视频免费在线| 免费av岛国天堂网站| 78色精品一区二区三区| 在线成人日韩av电影| yy96视频在线观看| 亚洲天堂精品福利成人av| 日日爽天天干夜夜操| 少妇人妻二三区视频| 天天干天天操天天扣| 亚洲美女美妇久久字幕组| 91免费福利网91麻豆国产精品| 国产麻豆精品人妻av| 9色在线视频免费观看| 男大肉棒猛烈插女免费视频| 国产密臀av一区二区三| 大香蕉伊人国产在线| 在线免费观看亚洲精品电影| 欧美天堂av无线av欧美| 国产成人精品福利短视频| 国产欧美日韩第三页| 中文字幕午夜免费福利视频| 午夜毛片不卡免费观看视频| 91桃色成人网络在线观看| 一区二区三区美女毛片| 久久美欧人妻少妇一区二区三区| 国产内射中出在线观看| 国产丰满熟女成人视频| 和邻居少妇愉情中文字幕| 天天操天天污天天射| 亚洲精品久久综合久| 伊人成人综合开心网| 97超碰人人搞人人| 在线播放 日韩 av| av森泽佳奈在线观看| 中文字幕乱码人妻电影| 国产麻豆精品人妻av| 亚洲一区二区三区av网站| 亚洲少妇人妻无码精品| av在线观看网址av| 日韩加勒比东京热二区| 亚洲1卡2卡三卡4卡在线观看| 69精品视频一区二区在线观看| 91精品国产91久久自产久强| 国产成人自拍视频在线免费观看| 免费av岛国天堂网站| 蝴蝶伊人久久中文娱乐网| 超污视频在线观看污污污| 欧美视频一区免费在线| 性欧美日本大妈母与子| 自拍偷拍亚洲欧美在线视频| 91免费观看在线网站| 午夜在线观看一区视频| 亚洲av色图18p| 亚洲av色图18p| 亚洲色偷偷综合亚洲AV伊人| 久久人人做人人妻人人玩精品vr| 又粗又硬又猛又爽又黄的| 啪啪啪啪啪啪啪免费视频| 国产高清在线观看1区2区| 亚洲中文字字幕乱码| 黄色男人的天堂视频| 国产福利小视频二区| 男人天堂色男人av| 国产精品一区二区三区蜜臀av | 亚洲人一区二区中文字幕| 国产午夜男女爽爽爽爽爽视频| 日韩北条麻妃一区在线| 久草福利电影在线观看| 亚洲精品国产久久久久久| 日韩三级电影华丽的外出| 亚洲av色图18p| 色狠狠av线不卡香蕉一区二区| 午夜精品久久久久麻豆影视| 伊人综合免费在线视频| 青青青青视频在线播放| 亚洲在线免费h观看网站| 一区二区三区视频,福利一区二区| 精品区一区二区三区四区人妻| 国产精品一区二区三区蜜臀av | 精品久久婷婷免费视频| 新婚人妻聚会被中出| 男人在床上插女人视频| 激情综合治理六月婷婷| 在线视频精品你懂的| 国产精品福利小视频a| 亚洲人妻视频在线网| av中文字幕福利网| 偷拍自拍 中文字幕| 天天日天天天天天天天天天天| 91国产在线视频免费观看| 老熟妇凹凸淫老妇女av在线观看| 青春草视频在线免费播放| 啊啊啊想要被插进去视频| 天天操天天干天天日狠狠插| 亚洲熟女女同志女同| 亚洲欧美另类自拍偷拍色图| 色吉吉影音天天干天天操| 99一区二区在线观看| 最新黄色av网站在线观看| 毛茸茸的大外阴中国视频| 精品区一区二区三区四区人妻 | 激情国产小视频在线| 中文字幕网站你懂的| 中文字幕第一页国产在线| 亚洲精品国品乱码久久久久| 国产亚洲天堂天天一区| 一区二区久久成人网| 国产精品久久久黄网站| 人妻久久久精品69系列| 天天躁夜夜躁日日躁a麻豆| 成熟丰满熟妇高潮xx×xx| 中文字幕高清免费在线人妻| 在线免费观看靠比视频的网站| 中文字幕在线乱码一区二区| 欧美80老妇人性视频| 97人妻无码AV碰碰视频| 亚洲Av无码国产综合色区| 婷婷午夜国产精品久久久| 国产一区二区欧美三区| 最新国产亚洲精品中文在线| 九色视频在线观看免费| 超级碰碰在线视频免费观看| 日韩中文字幕福利av| 久久久久久97三级| 国产精品久久9999| 大鸡八强奸视频在线观看| 在线观看欧美黄片一区二区三区| 午夜成午夜成年片在线观看| 亚洲熟女女同志女同| 国产chinesehd精品麻豆| www日韩毛片av| 中文字幕在线观看极品视频| 黄片三级三级三级在线观看| 老司机福利精品视频在线| 老司机在线精品福利视频| 硬鸡巴动态操女人逼视频| 偷拍自拍亚洲视频在线观看| 免费费一级特黄真人片| 日本人竟这样玩学生妹| 久久久久久97三级| 激情五月婷婷综合色啪| 98精产国品一二三产区区别| 亚洲熟妇久久无码精品| 性欧美激情久久久久久久| 亚洲图片偷拍自拍区| 男人插女人视频网站| 小穴多水久久精品免费看| 日韩影片一区二区三区不卡免费| 久久丁香婷婷六月天| 五月天久久激情视频| 色哟哟国产精品入口| 日本性感美女写真视频| 2017亚洲男人天堂| 五月天中文字幕内射| 1769国产精品视频免费观看| 久久久久五月天丁香社区| 国产精品亚洲在线观看| 东京热男人的av天堂| 抽查舔水白紧大视频| 中文字幕一区二区亚洲一区| 在线观看黄色成年人网站| 亚洲av一妻不如妾| 亚洲最大黄了色网站| 精品黑人巨大在线一区| 国产精品成人xxxx| 夜色撩人久久7777| 天天操天天干天天艹| 99re国产在线精品| 在线观看免费av网址大全| 天天日天天干天天爱| 成人av在线资源网站| 日韩美在线观看视频黄| 视频一区二区综合精品| 日韩激情文学在线视频| 人人妻人人人操人人人爽| 国产精品久久久久久久女人18| 天堂女人av一区二区| 女人精品内射国产99| 少妇人妻100系列| 无码日韩人妻精品久久| 视频在线亚洲一区二区| 免费费一级特黄真人片| 一区二区麻豆传媒黄片| 巨乳人妻日下部加奈被邻居中出| 久久精品亚洲国产av香蕉| 日韩精品啪啪视频一道免费| av男人天堂狠狠干| 国产一区二区火爆视频| 日本高清成人一区二区三区| 久久精品国产999| 国产又粗又硬又猛的毛片视频| 国产精品黄大片在线播放| 色综合久久无码中文字幕波多| 欧洲黄页网免费观看| 黑人解禁人妻叶爱071| 在线国产中文字幕视频| 80电影天堂网官网| 欧美亚洲免费视频观看| 欧美viboss性丰满| 97精品人妻一区二区三区精品| av在线免费观看亚洲天堂| 中文字幕1卡1区2区3区| 91九色porny国产蝌蚪视频| 久久永久免费精品人妻专区| 人妻av无码专区久久绿巨人| 日日爽天天干夜夜操| 天干天天天色天天日天天射| 久草免费人妻视频在线| 国产伊人免费在线播放| 日韩影片一区二区三区不卡免费| 中文字幕第1页av一天堂网| 亚洲一区二区三区在线高清| 亚洲中文字幕人妻一区| 一区二区在线视频中文字幕| 韩国爱爱视频中文字幕| 国产亚州色婷婷久久99精品| av一区二区三区人妻| 青草久久视频在线观看| 2020韩国午夜女主播在线| 亚洲国产40页第21页| 把腿张开让我插进去视频| 日本中文字幕一二区视频| 国产午夜激情福利小视频在线| 999久久久久999| 亚洲熟女女同志女同| 天天日天天透天天操| 日日摸夜夜添夜夜添毛片性色av| 色综合天天综合网国产成人| 亚洲精品福利网站图片| 国产精品成人xxxx| 美女操逼免费短视频下载链接| 黑人解禁人妻叶爱071| 国产一区二区欧美三区| 国产污污污污网站在线| 国产伊人免费在线播放| 老司机你懂得福利视频| 亚洲天堂有码中文字幕视频| 日本男女操逼视频免费看| 无码中文字幕波多野不卡| 欧美区一区二区三视频| 偷拍自拍福利视频在线观看| 国产乱子伦一二三区| 国产福利小视频大全| 亚洲精品久久综合久| 中文字日产幕乱六区蜜桃| 操操网操操伊剧情片中文字幕网| 日本五十路熟新垣里子| jiujiure精品视频在线| 天天色天天舔天天射天天爽| 日韩精品中文字幕福利| 1区2区3区4区视频在线观看| 亚洲成a人片777777| 熟女人妻在线观看视频| 免费黄色成人午夜在线网站| 1区2区3区不卡视频| 亚洲国产精品免费在线观看| 美洲精品一二三产区区别| 午夜青青草原网在线观看| 可以免费看的www视频你懂的| 少妇人妻二三区视频| 秋霞午夜av福利经典影视| 欧美va亚洲va天堂va| 精品欧美一区二区vr在线观看 | 538精品在线观看视频| 免费在线观看视频啪啪| 免费在线播放a级片| 亚洲在线观看中文字幕av| 亚洲 国产 成人 在线| 国产黄色片在线收看| 欧美香蕉人妻精品一区二区| 九九热99视频在线观看97| 视频一区 视频二区 视频| 亚洲精品成人网久久久久久小说| 天天日天天干天天搡| 风流唐伯虎电视剧在线观看| 18禁免费av网站| 中文字幕第三十八页久久| 天堂女人av一区二区| 人妻另类专区欧美制服| 午夜精品一区二区三区福利视频| 黄色中文字幕在线播放| 日韩美女搞黄视频免费| 成年人免费看在线视频| 91人妻人人做人人爽在线| 强行扒开双腿猛烈进入免费版| 欧美国产亚洲中英文字幕| 免费观看污视频网站| 大屁股熟女一区二区三区| 美女视频福利免费看| 2018在线福利视频| 青青草成人福利电影| 在线播放一区二区三区Av无码| 人人人妻人人澡人人| 狠狠鲁狠狠操天天晚上干干| 97人妻色免费视频| 亚洲精品亚洲人成在线导航| 啊啊啊视频试看人妻| 国产又粗又猛又爽又黄的视频在线| gay gay男男瑟瑟在线网站| 老司机福利精品视频在线| 欧美性感尤物人妻在线免费看| 爱有来生高清在线中文字幕| 人妻av无码专区久久绿巨人| 中文字幕第1页av一天堂网| av亚洲中文天堂字幕网| 大香蕉大香蕉在线看| 天堂av中文在线最新版| 美女骚逼日出水来了| 亚洲国产第一页在线观看| 亚洲精品 欧美日韩| 成人激情文学网人妻| 久久永久免费精品人妻专区 | 日韩av熟妇在线观看| 成人综合亚洲欧美一区 | 日韩美女福利视频网| 天干天天天色天天日天天射| 青青草人人妻人人妻| 91欧美在线免费观看| 2022天天干天天操| 色吉吉影音天天干天天操| 男人在床上插女人视频| 大香蕉大香蕉大香蕉大香蕉大香蕉 | 激情伦理欧美日韩中文字幕| 涩爱综合久久五月蜜臀| 91亚洲精品干熟女蜜桃频道 | 免费一级特黄特色大片在线观看| 欧美日韩在线精品一区二区三| 久久久久久9999久久久久| 大鸡巴后入爆操大屁股美女 | 人妻3p真实偷拍一二区| 蜜臀成人av在线播放| av在线资源中文字幕| 欧美精品亚洲精品日韩在线| 99精品免费久久久久久久久a| 啪啪啪操人视频在线播放| 精品人人人妻人人玩日产欧| 99婷婷在线观看视频| 天堂av中文在线最新版| 国产女人叫床高潮大片视频| 中文字幕之无码色多多| 国产无遮挡裸体免费直播视频| 孕妇奶水仑乱A级毛片免费看| 中出中文字幕在线观看| 精品欧美一区二区vr在线观看| 日韩熟女系列一区二区三区| 精品一区二区亚洲欧美| 免费黄高清无码国产| 在线视频免费观看网| 天天干天天操天天插天天日| 亚洲欧洲av天堂综合| 521精品视频在线观看| 日韩av有码中文字幕| 91色网站免费在线观看| 69精品视频一区二区在线观看| 激情啪啪啪啪一区二区三区| 国产精品亚洲а∨天堂免| 日韩av熟妇在线观看| 在线国产日韩欧美视频| 动漫黑丝美女的鸡巴| 91精品综合久久久久3d动漫| 黄色的网站在线免费看| 亚洲天堂精品福利成人av| 男人和女人激情视频| 看一级特黄a大片日本片黑人| 亚洲成人激情视频免费观看了| 最新中文字幕免费视频| 国产精品国色综合久久 | 熟女国产一区亚洲中文字幕| 日韩中文字幕在线播放第二页| 精品亚洲国产中文自在线| 精品一区二区亚洲欧美| 中文字幕无码日韩专区免费| 啊啊啊视频试看人妻| 亚洲天堂av最新网址| 在线观看的黄色免费网站| 真实国模和老外性视频| 538精品在线观看视频| 国产精品国产三级麻豆| 国产女人叫床高潮大片视频| 午夜福利人人妻人人澡人人爽| 性欧美日本大妈母与子| 国产视频一区在线观看| 五月精品丁香久久久久福利社| 国产日韩精品一二三区久久久| 男女之间激情网午夜在线| 亚洲偷自拍高清视频| 日本真人性生活视频免费看| 青青草原网站在线观看| 天天干天天日天天谢综合156| 国产成人精品av网站| 国产又粗又硬又猛的毛片视频| aⅴ五十路av熟女中出| 亚洲国产精品中文字幕网站| 91国内精品久久久久精品一| 1区2区3区4区视频在线观看| 亚洲成人精品女人久久久| 国产美女午夜福利久久| 久精品人妻一区二区三区| 亚洲国产精品美女在线观看| 一区二区三区四区中文| 久久精品亚洲成在人线a| 欧亚乱色一区二区三区| 韩国黄色一级二级三级| 亚洲熟女综合色一区二区三区四区| 亚洲国产精品中文字幕网站| 亚洲一区av中文字幕在线观看| 国产精品久久久久久美女校花| 亚洲成人av一区久久| 男人插女人视频网站| 免费观看污视频网站| 亚洲人妻av毛片在线| 天天做天天干天天舔| 女生自摸在线观看一区二区三区| 1769国产精品视频免费观看| 亚洲视频乱码在线观看| 9l人妻人人爽人人爽| 91‖亚洲‖国产熟女| 中文字幕之无码色多多| 干逼又爽又黄又免费的视频|