国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

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/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
丁香婷婷激情| 国产福利在线看| 国产福利在线观看| 2019年中文字幕| 在线中文字幕第一页| 亚洲欧美自拍另类| 青青草免费在线视频| 亚洲xxxxxx| av黄色在线观看| 欧美日韩在线资源| 国产三区在线观看| 精品成人一区二区三区免费视频| 国产偷倩在线播放| 国产成人夜间影院在线观看| 国产成人无吗| jlzzjlzz欧美| 国产一级免费在线观看| 2018中文字幕在线观看| 福利视频在线导航| 2020国产在线视频| 玖玖在线视频| 精品美女视频在线观看免费软件| 亚洲精品一区中文字幕电影| 日本动漫理论片在线观看网站| 欧美婷婷久久五月精品三区| 国产污视频在线| 欧美亚洲另类在线观看| 96精品视频| 国产性色视频| 国产女人在线视频| 日本天堂影院在线视频| 精品国产高清a毛片无毒不卡| 成人午夜无人区一区二区| av在线不卡网站| 国产精品被窝福利一区| 国产在线观看91| 色吊丝av中文字幕| 精品乱码一区二区三四区视频| eeuss影院www在线观看| 97国产视频| 精品国内自产拍在线视频| 国产剧情在线一区| 久久99亚洲网美利坚合众国| av中文在线| 欧美日韩久久中文字幕| av在线不卡网站| 欧美日韩综合高清一区二区| 香蕉视频在线看| 免费不卡中文字幕视频| 九九热视频精品在线观看| h网站免费在线观看| 一本大道久久a久久精品| 2018狠狠干| 国产成在线观看免费视频| 国产精品va在线观看视色| 最近最好的中文字幕2019免费| 九七电影韩国女主播在线观看| 天天插天天色| 国产理论电影在线| 999在线视频| www黄在线观看| 午夜免费视频在线国产| 国产一起色一起爱| 在线天堂中文| 国产在线麻豆精品| 国产精品久久久高清免费| 永久免费在线观看| 久久99国产视频| 国产一区二区三区福利| 精品视频在线一区二区| www.狠狠操| 国产精品欧美韩国日本久久| 在线观看免费视频一区二区三区| 嫩草在线播放| 国产福利免费在线观看| 黄色一级片视频| 伊人精品影院| 国产九色porn网址| 91嫩草在线播放| 国产女王在线**视频 | 牛牛精品视频在线| 国产一级二级在线| gogo在线高清视频| 国产成+人+亚洲+欧美+综合| 轻轻色免费在线视频| 中文字幕第一页在线| www.操操操| 国产成人精品综合网站| 国产中文字幕在线观看| 99热免费在线| 国产黄色在线| 激情丁香在线| 免费精品国产自产拍观看| 精品美女调教视频| 69久久精品| 在线免费黄色毛片| 精品999视频| 91高清国产| 777电影在线观看| 国产不卡在线| 国产探花在线观看| 国产毛片在线看| 超碰国产在线观看| 成年午夜在线| 国产精品一区二区婷婷| 激情综合网五月激情| 久艹在线视频| 尤物视频免费在线观看| 激情综合丁香| 国产午夜在线| 中文视频在线| 美女av在线播放| 美女网站在线观看| 国产网站免费看| 国产a级网站| 精品一区二区三区在线成人| 国产高清在线| 日本亚洲精品| 福利视频在线导航| 国产wwww| 免费视频中文字幕| 国产精品白浆视频免费观看| 亚洲国产日韩成人综合天堂| 九九99九九精彩| 国产成在线观看免费视频| jizz性欧美| 国产一二三区在线| 在线观看av网站| 国产69久久| 尤物在线视频观看| 国产中文在线视频| 国产对白国语对白| 九九视频精品在线| 99综合精品久久| 国产一级片在线| 欧美精品一区二区三区免费| 国产小视频在线观看| yjizz视频网站在线播放| 国产视频1区| 国产美女在线免费观看| 亚洲永久免费网站| 国产三级在线| 精品资源在线看| 亚洲精品在线播放视频| 国产精品视频一区二区三区麻豆| 影音先锋在线中文字幕| 国产三区四区在线观看| 超碰在线观看免费版| 先锋av资源网| 51成人精品网站| 国产成人午夜| 国产成人综合美国十次| 中文字幕在线免费| 尤物在线网址| 国产美女自拍视频| 国产中文第一页| 丁香婷婷在线观看| 免费a在线看| 超碰免费在线播放| 国产在线小视频| 黄色电影网站在线观看| a视频在线观看免费| 俺来俺也去www色在线观看| av麻豆国产| 日本成人网址| 九九热视频在线| 国产免费视频在线| 五月婷婷丁香激情| 国产亚洲精品久久久网站好莱| 成网站在线观看人免费| 五月婷婷在线观看| 日本中文字幕视频在线| 中文字幕专区| 2018狠狠干| 超碰国产在线| 国产一级在线观看www色| 国产精品入口麻豆完整版| 国产成人天天5g影院| 午夜影院在线免费观看| 九九热视频免费观看| 国产精品18久久久久久久久久| 国产高清视频在线播放| 在线天堂视频| 麻豆网站在线| 国产不卡一卡2卡三卡4卡5卡在线| 国产精品扒开做爽爽爽的视频| 国产精品国产三级国产试看| 99热免费在线观看| 国产卡1卡2卡三卡在线| 伊人影院在线观看| 国产毛片视频| 国产高清一级片| 久久久久久77777| 2019中文字幕在线视频| 九色自拍视频| 在线中文字幕资源| 精品a在线观看| 国产精品久久久久一区二区国产| 精品福利视频导航大全| 91在线看片|