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

首頁 > 學院 > 操作系統 > 正文

Docker -- 2 -- 利用docker部署網站和數據庫

2024-06-28 16:03:22
字體:
來源:轉載
供稿:網友

在Docker – 系統整潔之道 – 1中已經對Docker的一些命令和Docker鏡像的使用及操作做了記錄。 這次就利用docker進行一次真正的實例使用,使用docker搭建一個簡單的答題系統,這個系統是當時做來給網絡安全周做手機答題的系統,很簡單,代碼風格很差。

這篇主要記錄了三種docker使用的方式。

用supervisor方式運行一個多進程的docker實例創建一個ngnix和php運行的環境創建一個ngnix,php,MySQL集合運行的環境,使用docker-compose構建

{% fi /images/201609/4.svg, Docker, Docker %}

感覺docker的東西越看越多,從剛開始的簡簡單單的一個docker run,到現在看到要build自己的鏡像,compose,也就是以前的Fig,配置網絡,還有swarm的docker集群,一點一點來吧。

先把兩個附件寫在這里吧 此片博客中構建php+ngnix+mysql測試環境的腳本 在測試環境中的答題網站源碼

supervisor方式運行一個多進程的docker實例


Docker 容器在啟動的時候開啟單個進程,比如,一個 ssh 或者 apache 的 daemon 服務。但我們經常需要在一個機器上開啟多個服務,這可以有很多方法,最簡單的就是把多個啟動命令放到一個啟動腳本里面,啟動的時候直接啟動這個腳本,另外就是安裝進程管理工具。這里使用進程管理工具 supervisor 來管理容器中的多個進程。使用 Supervisor 可以更好的控制、管理、重啟我們希望運行的進程。

首先創一個文件夾叫做supervisor,目錄結構為

~/Docker tree supervisorsupervisor├── Dockerfile└── supervisord

其中文件Dockerfile文件內容為:

#使用時哪個鏡像FROM Ubuntu:13.04MAINTAINER examples@docker.comRUN echo "deb http://archive.ubuntu.com/ubuntu PRecise main universe" > /etc/apt/sources.listRUN apt-get updateRUN apt-get upgrade -y#這里安裝 3 個軟件,還創建了 2 個 ssh 和 supervisor 服務正常運行所需要的目錄。RUN apt-get install -y --force-yes perl-base=5.14.2-6ubuntu2RUN apt-get install -y apache2.2-commonRUN apt-get install -y openssh-server apache2 supervisorRUN mkdir -p /var/run/sshdRUN mkdir -p /var/log/supervisor#添加 supervisord 的配置文件,并復制配置文件到對應目錄下面。COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf#映射了 22 和 80 端口,使用 supervisord 的可執行路徑啟動服務EXPOSE 22 80CMD ["/usr/bin/supervisord"]

文件supervisord內容為:

#supervsord 配置軟件本身,使用 nodaemon 參數來運行[supervisord]nodaemon=true#配置兩個服務[program:sshd]command=/usr/sbin/sshd -D[program:apache2]command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"

使用命令進行構建

sudo docker build -t supervisor

輸出:

~/Docker/supervisor sudo docker build -t supervisord .PassWord:Sending build context to Docker daemon 3.584 kBStep 1 : FROM ubuntu:13.04---> a58cd502f927Step 2 : MAINTAINER examples@docker.com---> Using cache---> 15f104cdeb77Step 3 : RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list---> Using cache---> c6bb44d794eaStep 4 : RUN apt-get update---> Using cache---> adcd83eecb0dStep 5 : RUN apt-get upgrade -y---> Using cache---> 89e045811261Step 6 : RUN apt-get install -y --force-yes perl-base=5.14.2-6ubuntu2---> Using cache---> bcdc472cc73aStep 7 : RUN apt-get install -y apache2.2-common---> Using cache---> d8991f8aa3c6Step 8 : RUN apt-get install -y openssh-server apache2 supervisor---> Using cache---> a713034800d6Step 9 : RUN mkdir -p /var/run/sshd---> Using cache---> 3138e3644958Step 10 : RUN mkdir -p /var/log/supervisor---> Using cache---> 958c08978b0cStep 11 : COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf---> 8e9a0c97a133Removing intermediate container d95b58057f73Step 12 : EXPOSE 22 80---> Running in 9cabb0865159---> b4aa8b82cd57Removing intermediate container 9cabb0865159Step 13 : CMD /usr/bin/supervisord---> Running in 237f71166211---> 569f95736129Removing intermediate container 237f71166211Successfully built 569f95736129

使用docker ps 一下

~/Docker/supervisor docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc82c830770bc supervisord:latest "/usr/bin/supervisord" 32 seconds ago Up 30 seconds 0.0.0.0:32770->22/tcp, 0.0.0.0:32769->80/tcp supervisord

發現剛才build的鏡像已經跑起來了,訪問 http://127.0.0.1:32769,可以web服務已經跑起來了。

這里寫圖片描述

使用命令docker exec進入container里面看看

~/Docker/supervisor docker exec -it c82c830770bc bashroot@c82c830770bc:/# hellobash: hello: command not foundroot@c82c830770bc:/# lsbin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr varroot@c82c830770bc:/#

使用passwd修改一下密碼,然后在本機的命令行里進行ssh連接吧。

ngnix和php運行的環境


該方法就是直接使用docker命令進行構建一個ngnix,php結合運行的環境,沒有使用docker-compose。

先用戶根目錄~下創建目錄,并將該目錄設置為Docker的共享目錄。

Workspace└── tmp ├── docker │ └── nginx │ └── conf.d │ └── default.conf └── www ├── index.html └── phpinfo.php

其中default.conf文件內容,這是個nginx的配置文件

server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ /.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRipT_FILENAME /var/www/html/$fastcgi_script_name; include fastcgi_params; }}

index.html 里寫一句 HelloW0rld,phpinfo.php里面寫一個<?php phpinfo();?>。

然后在命令行下執行命令

docker pull php:5.6-fpm-alpinedocker pull ngnix:1.10.2docker run --name dream.php -d -v ~/Workspace/tmp/www:/var/www/html:ro php:5.6-fpmdocker run --name dream.nginx -p 80:80 -d -v ~/Workspace/tmp/www:/usr/share/nginx/html:ro -v ~/Workspace/tmp/docker/nginx/conf.d:/etc/nginx/conf.d:ro --link dream.php:php nginx:1.10.2

好的,如果不出意外,就可以看到phpinfo的界面了。這個是沒有添加mysql的測試環境,直接在目錄~/Workspace/tmp/www下面放網頁就可以直接使用了。

ngnix,php,mysql集合運行的環境


Supervisor給出了一種能夠在container中運行多個線程的方法,但是現在還是不知道要怎么樣把自己的web服務部署到container中,數據庫怎么建,可以有人會說直接使用SFTP將網站直接傳到container里,安裝數據庫,配環境,但是docker中一旦container被刪除,內容就沒了。像這樣將所有服務放在一個容器內的模式有個形象的非官方稱呼:Fat Container。與之相對的是將服務分拆到容器的模式。從Docker的設計可以看到,構建鏡像的過程中可以指定唯一一個容器啟動的指令,因此Docker天然適合一個容器只運行一種服務,而這也是官方更推崇的。下面就記錄一下部署一個簡單的php程序和數據庫聯動的測試環境。

整體的文件結構是這樣的 我們創建一個這樣的目錄

Docker└── test ├── data 數據庫文件夾 │ └── mysql ├── docker-compose.yml docker-compose配置文件 ├── htdocs 網站文件夾 │ ├── index.html │ └── index.php ├── log 日志文件 │ └── nginx ├── mysql mysql構建文件 │ └── Dockerfile ├── nginx nginx構建文件 │ ├── Dockerfile │ ├── conf.d │ │ └── default.conf │ └── nginx.conf └── php php構建文件 └── Dockerfile

mysql 獨立部署


mysql目錄下的Dockerfile文件只有一行FROM mysql:5.6,也就是直接使用mysql官方鏡像5.6,然后使用命令

docker build -t phpenv/mysql mysql

構建自己的鏡像phpenv/mysql。 使用命令

docker run -p 3306:3306 -v ~/Docker/test/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it phpenv/mysql

啟動鏡像,將容器的3306端口綁定到本機的3306端口,其中參數-v后代表使用~/Docker/test/data/mysql掛在到鏡像的/var/lib/mysql,也就是替代源鏡像的數據庫文件目錄,讓數據庫文件目錄暴露在本機上,做到數據庫內容的持久化。MYSQL_ROOT_PASSWORD為設置mysql的一個root密碼。

運行結果

~/Docker/test docker run -p 3306:3306 -v ~/Docker/test/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it phpenv/mysql2016-12-27 15:06:49 0 [Note] mysqld (mysqld 5.6.35) starting as process 1 ...2016-12-27 15:06:49 1 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive2016-12-27 15:06:49 1 [Note] Plugin 'FEDERATED' is disabled.2016-12-27 15:06:49 1 [Note] InnoDB: Using atomics to ref count buffer pool pages2016-12-27 15:06:49 1 [Note] InnoDB: The InnoDB memory heap is disabled2016-12-27 15:06:49 1 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins2016-12-27 15:06:49 1 [Note] InnoDB: Memory barrier is not used2016-12-27 15:06:49 1 [Note] InnoDB: Compressed tables use zlib 1.2.82016-12-27 15:06:49 1 [Note] InnoDB: Using Linux native AIO2016-12-27 15:06:49 1 [Note] InnoDB: Using CPU crc32 instructions2016-12-27 15:06:49 1 [Note] InnoDB: Initializing buffer pool, size = 128.0M2016-12-27 15:06:49 1 [Note] InnoDB: Completed initialization of buffer pool2016-12-27 15:06:49 1 [Note] InnoDB: Highest supported file format is Barracuda.2016-12-27 15:06:49 1 [Note] InnoDB: 128 rollback segment(s) are active.2016-12-27 15:06:49 1 [Note] InnoDB: Waiting for purge to start2016-12-27 15:06:49 1 [Note] InnoDB: 5.6.35 started; log sequence number 16260272016-12-27 15:06:49 1 [Note] Server hostname (bind-address): '*'; port: 33062016-12-27 15:06:49 1 [Note] IPv6 is available.2016-12-27 15:06:49 1 [Note] - '::' resolves to '::';2016-12-27 15:06:49 1 [Note] Server socket created on IP: '::'.2016-12-27 15:06:49 1 [Warning] 'proxies_priv' entry '@ root@bd69eb248839' ignored in --skip-name-resolve mode.2016-12-27 15:06:49 1 [Note] Event Scheduler: Loaded 0 events2016-12-27 15:06:49 1 [Note] mysqld: ready for connections.Version: '5.6.35' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)

使用DBeaver連接后 這里寫圖片描述

查看一下當前~/Docker/test/data/mysql數據庫目錄下的文件

~/Docker/test/data/mysql lsauto.cnf ib_logfile0 ib_logfile1 ibdata1 mysql performance_schema

新建一個庫docker_test后~/Docker/test/data/mysql數據庫目錄下的文件

~/Docker/test/data/mysql lsauto.cnf docker_test ib_logfile0 ib_logfile1 ibdata1 mysql performance_schema

可以發現數據庫已經創建好了,也如下圖 這里寫圖片描述

為了驗證數據庫數據的持久型,我們先停止當前運行的container并產出它,然后從鏡像啟動一個新的container,如命令

~/Docker ? docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES970dec0f7de9 phpenv/mysql "docker-entrypoint.sh" 30 minutes ago Up 30 minutes 0.0.0.0:3306->3306/tcp berserk_brown~/Docker ? docker stop 970dec0f7de9970dec0f7de9~/Docker ? docker rm 970dec0f7de9970dec0f7de9~/Docker ? docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc82c830770bc supervisord:latest "/usr/bin/supervisord" 35 hours ago Exited (0) 32 minutes ago supervisord~/Docker ? docker run -p 3306:3306 -v ~/Docker/test/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it phpenv/mysql2016-12-27 15:38:04 0 [Note] mysqld (mysqld 5.6.35) starting as process 1 ...2016-12-27 15:38:04 1 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive2016-12-27 15:38:04 1 [Note] Plugin 'FEDERATED' is disabled.2016-12-27 15:38:04 1 [Note] InnoDB: Using atomics to ref count buffer pool pages2016-12-27 15:38:04 1 [Note] InnoDB: The InnoDB memory heap is disabled2016-12-27 15:38:04 1 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins2016-12-27 15:38:04 1 [Note] InnoDB: Memory barrier is not used2016-12-27 15:38:04 1 [Note] InnoDB: Compressed tables use zlib 1.2.82016-12-27 15:38:04 1 [Note] InnoDB: Using Linux native AIO2016-12-27 15:38:04 1 [Note] InnoDB: Using CPU crc32 instructions2016-12-27 15:38:04 1 [Note] InnoDB: Initializing buffer pool, size = 128.0M2016-12-27 15:38:04 1 [Note] InnoDB: Completed initialization of buffer pool2016-12-27 15:38:04 1 [Note] InnoDB: Highest supported file format is Barracuda.2016-12-27 15:38:04 1 [Note] InnoDB: 128 rollback segment(s) are active.2016-12-27 15:38:04 1 [Note] InnoDB: Waiting for purge to start2016-12-27 15:38:04 1 [Note] InnoDB: 5.6.35 started; log sequence number 16260372016-12-27 15:38:04 1 [Note] Server hostname (bind-address): '*'; port: 33062016-12-27 15:38:04 1 [Note] IPv6 is available.2016-12-27 15:38:04 1 [Note] - '::' resolves to '::';2016-12-27 15:38:04 1 [Note] Server socket created on IP: '::'.2016-12-27 15:38:04 1 [Warning] 'proxies_priv' entry '@ root@bd69eb248839' ignored in --skip-name-resolve mode.2016-12-27 15:38:04 1 [Note] Event Scheduler: Loaded 0 events2016-12-27 15:38:04 1 [Note] mysqld: ready for connections.Version: '5.6.35' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)

再次連接數據庫驗證,發現剛才新建的庫docker_test還在,數據庫文件持久型保存了。

docker-compose 中mysql配置

待完善

docker-compose 中nginx部署

nginx在構建的時候要替換兩個配置文件,Dockfile

FROM nginx:1.10.2ADD nginx.conf /etc/nginx/nginx.confADD conf.d/* /etc/nginx/conf.d/

掛載文件在docker-compose里進行定義。

待完善

docker-compose 中php配置

php什么也不做,只通過Dockfile

FROM php:5.6-fpm

來構建

待完善

docker-compose 構建


docker-compose文件

nginx: build: ./nginx ports: - "40080:80" links: - "php" volumes: - ~/Docker/test/htdocs:/usr/share/nginx/htmlphp: build: ./php ports: - "49000:9000" links: - "mysql" volumes: - ~/Docker/test/htdocs:/var/www/htmlmysql: build: ./mysql ports: - "43306:3306" volumes: - ~/Docker/test/data/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 123456

記錄一下,首先docker-compse是用來集合構建多個鏡像的工具,這里我們集合了nginx,php,mysql來搭建一個php的測試環境,在文件中,有一個links參數,是用來連接其他實例,讓多個實例之間可以進行通信。

這里有整合文件的下載鏈接,下載后,將文件放在用戶根目錄下,命令行執行docker-compose up,結果

~/Docker/test ? docker-compose upBuilding mysqlStep 1 : FROM mysql:5.6---> e1406e1f7c42Successfully built e1406e1f7c42WARNING: Image for service mysql was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.Building phpStep 1 : FROM php:5.6-fpm5.6-fpm: Pulling from library/php75a822cd7888: Already existse4d8a4e038be: Pull complete81d4d961577a: Pull complete54283fea14a4: Pull completea1b82ddb6e57: Pull completefe532c795718: Pull completef02389f3f13e: Pull complete5777f6cf03c5: Pull complete24b45111f193: Pull completeDigest: sha256:022410892774f45ebd39bdb4df39a4a72e6ae5db96a31ee83e7eb25382cd2491Status: Downloaded newer image for php:5.6-fpm---> 55423bcf0cfcSuccessfully built 55423bcf0cfcWARNING: Image for service php was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.Building nginxStep 1 : FROM nginx:1.10.2---> c2d83d8cde8dStep 2 : ADD nginx.conf /etc/nginx/nginx.conf---> e45c0dceafb9Removing intermediate container ca538d0f2fd1Step 3 : ADD conf.d/* /etc/nginx/conf.d/---> bf0d37221331Removing intermediate container ebaa3b27453aSuccessfully built bf0d37221331WARNING: Image for service nginx was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.Creating test_mysql_1Creating test_php_1Creating test_nginx_1Attaching to test_mysql_1, test_php_1, test_nginx_1mysql_1 | 2016-12-28 07:29:43 0 [Note] mysqld (mysqld 5.6.35) starting as process 1 ...mysql_1 | 2016-12-28 07:29:43 1 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitivemysql_1 | 2016-12-28 07:29:43 1 [Note] Plugin 'FEDERATED' is disabled.mysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Using atomics to ref count buffer pool pagesmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: The InnoDB memory heap is disabledmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtinsmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Memory barrier is not usedmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Compressed tables use zlib 1.2.8mysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Using Linux native AIOmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Using CPU crc32 instructionsmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Initializing buffer pool, size = 128.0Mmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Completed initialization of buffer poolmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Highest supported file format is Barracuda.php_1 | [28-Dec-2016 07:29:43] NOTICE: fpm is running, pid 1mysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: 128 rollback segment(s) are active.php_1 | [28-Dec-2016 07:29:43] NOTICE: ready to handle connectionsmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: Waiting for purge to startmysql_1 | 2016-12-28 07:29:43 1 [Note] InnoDB: 5.6.35 started; log sequence number 1626263mysql_1 | 2016-12-28 07:29:43 1 [Note] Server hostname (bind-address): '*'; port: 3306mysql_1 | 2016-12-28 07:29:43 1 [Note] IPv6 is available.mysql_1 | 2016-12-28 07:29:43 1 [Note] - '::' resolves to '::';mysql_1 | 2016-12-28 07:29:43 1 [Note] Server socket created on IP: '::'.mysql_1 | 2016-12-28 07:29:43 1 [Warning] 'proxies_priv' entry '@ root@bd69eb248839' ignored in --skip-name-resolve mode.mysql_1 | 2016-12-28 07:29:43 1 [Note] Event Scheduler: Loaded 0 eventsmysql_1 | 2016-12-28 07:29:43 1 [Note] mysqld: ready for connections.mysql_1 | Version: '5.6.35' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)

訪問一下 http://localhost:40080/index.php ,正常的話,如下圖

這里寫圖片描述

啟動一個真實的代碼

下面的代碼是今年網絡安全周的一個手機在線答題系統,代碼很挫,大牛誤笑

源碼在這里。

將目錄直接放在~/Docker/test/htdocs下面,然后在test目錄下執行docker-compose up,正常情況下,就會跑起來上面的容器,然后按照代碼的README將數據庫部署就可以運行了。

這里寫圖片描述

參考鏈接


Docker 從入門到實踐第一本Docker書如何進入一個正在運行的ContainerDocker在PHP項目開發環境中的應用

原文鏈接: http://dengnanyi.com/2016/12/24/2016_12/docker-learn-3/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产va免费精品高清在线观看| 中文字幕在线成人| 中文综合在线观看| 精品久久国产精品| 一本色道久久88综合日韩精品| 亚洲欧美日韩另类| 国产精品久久久久久久久久尿| 欧美电影免费观看电视剧大全| 久久香蕉精品香蕉| 日韩高清免费在线| 色777狠狠综合秋免鲁丝| 在线观看日韩欧美| 精品久久香蕉国产线看观看gif| 欧美成人亚洲成人| 欧美激情xxxx| 日韩大片免费观看视频播放| 欧美日韩在线视频一区| 亚洲综合一区二区不卡| 亚洲人永久免费| 久久精品国产久精国产一老狼| 国产精品美女久久久久久免费| 伊人久久免费视频| 精品国产成人在线| 91九色国产社区在线观看| 大胆人体色综合| 日本成人精品在线| 欧美刺激性大交免费视频| 91精品国产乱码久久久久久久久| 亚洲女人天堂成人av在线| 欧美成人精品xxx| 欧美夫妻性视频| 992tv在线成人免费观看| 国产精品女人网站| 91免费看国产| 欧美黄色片在线观看| 伊人伊成久久人综合网站| 日韩激情片免费| 日韩精品视频中文在线观看| 一区二区三区视频观看| 精品成人国产在线观看男人呻吟| 51久久精品夜色国产麻豆| 中文字幕亚洲色图| 国产婷婷成人久久av免费高清| 日本中文字幕成人| 大荫蒂欧美视频另类xxxx| 国产91热爆ts人妖在线| 亚洲欧美日韩中文在线制服| 国产在线日韩在线| 亚洲精品国产美女| 日韩免费观看在线观看| 国外成人在线直播| 色综合久久久久久中文网| 国产经典一区二区| 亚洲免费av片| 亚洲激情自拍图| 国产精品尤物福利片在线观看| 欧美日韩一区二区免费在线观看| 欧美日韩第一视频| 色综合久久悠悠| 久久久久久999| 亚洲激情视频网| 九九热这里只有在线精品视| 亚洲成人精品久久| 中文字幕一区二区精品| 成人动漫网站在线观看| 国产精品美女网站| 久久精品国产2020观看福利| 国产精品高清网站| 欧美成人免费全部观看天天性色| 激情亚洲一区二区三区四区| 亚洲激情电影中文字幕| 亚洲国产精品成人va在线观看| 精品偷拍一区二区三区在线看| 国产亚洲精品久久久久久牛牛| 精品国产成人av| 日韩精品在线私人| 九色精品免费永久在线| 亚洲一区二区自拍| 黄色一区二区在线观看| 国产精品美女网站| 精品视频在线导航| 尤物九九久久国产精品的特点| 亚洲国产精品嫩草影院久久| 91国偷自产一区二区三区的观看方式| 欧美性xxxx极品hd欧美风情| 中文精品99久久国产香蕉| 久久久99免费视频| 成人av色在线观看| 欧美电影在线免费观看网站| 欧美性做爰毛片| 尤物tv国产一区| 欧美一级淫片播放口| 国产丝袜一区二区三区免费视频| 国产精品日日摸夜夜添夜夜av| 97婷婷涩涩精品一区| 国产98色在线| 激情成人在线视频| 热99在线视频| 国产精品第3页| 欧美日韩国产成人| 国产成人久久久精品一区| 亚洲女人天堂成人av在线| 亚洲精品久久7777777| 色婷婷亚洲mv天堂mv在影片| 日韩av中文字幕在线| 日韩在线观看网站| 精品在线观看国产| 国产精品久久久久久久av电影| 性色av一区二区三区免费| 欧美日韩午夜激情| 欧美乱大交xxxxx另类电影| 国产欧美精品va在线观看| 8050国产精品久久久久久| 最近2019中文字幕在线高清| 正在播放国产一区| 久久999免费视频| 亚洲黄一区二区| 最近2019中文字幕一页二页| 欧美一级高清免费播放| 亚洲精品影视在线观看| 日本一区二区三区在线播放| 91tv亚洲精品香蕉国产一区7ujn| 一本一本久久a久久精品综合小说| 久久夜色精品国产| 91久久综合亚洲鲁鲁五月天| 少妇av一区二区三区| 欧美精品久久久久久久免费观看| 久久久精品一区二区| 深夜精品寂寞黄网站在线观看| 奇米影视亚洲狠狠色| 国产精品偷伦免费视频观看的| 2019亚洲男人天堂| 欧美丝袜第一区| 精品日本高清在线播放| 91精品久久久久久久久久久久久| 亚洲va电影大全| 欧美日韩午夜视频在线观看| 亚洲精品美女视频| 日韩中文字幕视频在线观看| 亚洲欧美日韩高清| 欧美性xxxxx极品娇小| 欧美性猛交xxxx免费看久久久| zzijzzij亚洲日本成熟少妇| 国产a∨精品一区二区三区不卡| 欧美日韩成人在线观看| 国产精品av在线播放| 久久久久久久久久久国产| 中文字幕在线视频日韩| 亚洲视频视频在线| 成人国内精品久久久久一区| 91免费国产视频| 日韩精品在线观看一区| 亚洲2020天天堂在线观看| 91久久综合亚洲鲁鲁五月天| 中文字幕在线观看亚洲| 2019最新中文字幕| 欧美一区二区三区免费观看| 色综合视频一区中文字幕| 91免费在线视频网站| 日韩精品中文字| 国产精品大片wwwwww| 成人免费视频网| 欧美日韩免费一区| 亚洲国产精品嫩草影院久久|