日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker笔记整理

發(fā)布時間:2024/10/6 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker笔记整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • docker歷史
    • docker能做什么
    • Docker的安裝
      • Docker的基本組成
      • 安裝Docker
      • 阿里云鏡像加速
      • 回顧Hello-World
      • 底層原理
    • Docker的常用命令
      • 幫助命令
      • 鏡像命令
      • 容器命令
      • 常用其他命令
      • 總結(jié)
      • 實戰(zhàn)練習(xí)
      • 可視化
    • docker 鏡像
      • commit鏡像
    • 容器數(shù)據(jù)卷
      • 使用數(shù)據(jù)卷
      • 安裝MySQL
      • 具名和匿名掛載
      • 初識DockerFile
      • 數(shù)據(jù)卷容器
    • DockerFile
      • DockerFile介紹
      • DockerFile構(gòu)建過程
      • DockerFile指令
      • 發(fā)布鏡像
    • Docker 網(wǎng)絡(luò)
      • 理解Docker0
      • --link
      • 自定義網(wǎng)絡(luò)
      • 網(wǎng)絡(luò)聯(lián)通
      • 實戰(zhàn)部署Redis
        • 安裝單機(jī)版Redis
        • 實戰(zhàn)部署Redis集群
      • 安裝ZooKeeper
        • 一、單機(jī)搭建
        • 二、集群搭建
    • Docker Compose
      • 簡介
      • 安裝

docker歷史

2010年,幾個年輕人,在美國成立dotcloud ,做一些pass云服務(wù)。

lxc有關(guān)的容器技術(shù),他們將自己的技術(shù)容器化

聊聊docker

Docker是基于GO語言開發(fā)的!開源項目!

官網(wǎng):https://www.docker.com/

文檔地址:https://docs.docker.com/ 超級詳細(xì)

倉庫地址:https://hub.docker.com/

docker能做什么

之前的虛擬技術(shù)

虛擬技術(shù)的缺點

  • 占用資源多
  • 冗余步驟多
  • 啟動慢
  • 容器化技術(shù)

    容器化技術(shù)不是模擬的一個完整的操作系統(tǒng)

    Docker和虛擬機(jī)之間的區(qū)別

    • 傳統(tǒng)虛擬機(jī)虛擬出一套完整的硬件,運(yùn)行一套完整的虛擬環(huán)境,在操作系統(tǒng)上運(yùn)行安裝軟件
    • 容器直接運(yùn)行在內(nèi)核中,容器沒有自己的內(nèi)核,也沒有虛擬硬件,所以輕便
    • 每個容器間相互隔離,每個容器都有屬于自己的文件系統(tǒng),互不影響

    DevOps(開發(fā)、運(yùn)維)

    更快速的運(yùn)維部署

    傳統(tǒng)應(yīng)用:一堆文檔,安裝運(yùn)行

    Docker:打包鏡像發(fā)布測試,一鍵運(yùn)行

    更便捷的升級和擴(kuò)縮容

    使用docker之后,發(fā)布應(yīng)用就像搭積木一樣

    項目打包為鏡像,可以在其他環(huán)境直接運(yùn)行

    更簡單的運(yùn)維

    在容器化后,開發(fā)環(huán)境、測試環(huán)境高度一致

    更高效的資源利用

    Docker是內(nèi)核虛擬化,在一個物理機(jī)上可以運(yùn)行多個容器實例,服務(wù)器性能可以壓榨到極致

    Docker的安裝

    Docker的基本組成

    鏡像(images)

    Docker鏡像是一個模板,可以通過這個模板創(chuàng)建容器服務(wù),tomcat—>run—>tomcat01容器(提供服務(wù)器),通過這個鏡像可以創(chuàng)建多個容器

    容器(container)

    Docker利用容器技術(shù)運(yùn)行通過鏡像創(chuàng)建的應(yīng)用

    啟動、刪除基本命令

    倉庫(repository)

    存放鏡像的地方!

    共有倉庫和私有倉庫!

    Docker Hub(默認(rèn)是國外的)

    阿里云…都有這些倉庫(配置鏡像加速)

    安裝Docker

    環(huán)境準(zhǔn)備

  • 會一點點linux基礎(chǔ)
  • CentOS 7
  • 使用XShell鏈接遠(yuǎn)程服務(wù)器
  • 環(huán)境查看

    #系統(tǒng)內(nèi)核3.10以上 [root@izuf6cn5k7l8xuxojhszqbz ~]# uname -r 3.10.0-862.14.4.el7.x86_64 #系統(tǒng)版本 [root@izuf6cn5k7l8xuxojhszqbz /]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"

    安裝

    幫助文檔:https://docs.docker.com/engine/install/centos/

    # 1.卸載舊版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine # 2.下載需要的安裝包 yum install -y yum-utils# 3.設(shè)置鏡像倉庫 yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo #默認(rèn)是國外的十分慢yum-config-manager --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推薦使用阿里云的 # 更新yum相關(guān)索引 yum makecache faste # 4.安裝Docker相關(guān)內(nèi)容 docker-ce社區(qū)版 ee企業(yè)版 yum install docker-ce docker-ce-cli containerd.io # 5.啟動docker sudo systemctl start docker # 6.使用docker version查看是否安裝成功

    # 7. hello-world docker run hello-world

    # 8. 查看下載的hello-world這個鏡像 [root@izuf6cn5k7l8xuxojhszqbz /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 235592615444 4 months ago 104MB mysql 5.7 9cfcce23593a 4 months ago 448MB hello-world latest fce289e99eb9 21 months ago 1.84kB logstash 6.4.0 13b7a09abaf8 2 years ago 670MB kibana 6.4.0 a7e4cd1a7b45 2 years ago 667MB elasticsearch 6.4.0 1ac676545731 2 years ago 791MB

    了解卸載docker

    # 1.卸載依賴 yum remove docker-ce docker-ce-cli containerd.io # 2.刪除資源 rm -rf /var/lib/docker #/var/lib/docker docker的默認(rèn)工作路徑

    阿里云鏡像加速

  • 登陸阿里云找到容器服務(wù)

  • 鏡像加速地址

  • 配置使用

    sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' {"registry-mirrors": ["https://0b56c32l.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
  • 回顧Hello-World

    底層原理

    Docker 是一個Client-Server的系統(tǒng),Docker的守護(hù)進(jìn)程運(yùn)行在主機(jī)上,通過Socket從客戶端訪問

    DockerServer接受DockerClient命令

    Docker為什么比VM運(yùn)行更快?

  • Docker有比虛擬機(jī)更少的抽象層
  • Docker用的是宿主機(jī)的內(nèi)核
  • Docker的常用命令

    幫助命令

    docker version # 顯示Docker的版本信息 docker info # 顯示Docker的系統(tǒng)信息,包括鏡像和容器的數(shù)量 docker 命令 --help # 幫助命令

    幫助文檔地址:https://docs.docker.com/engine/reference/run/

    鏡像命令

    [root@izuf6cn5k7l8xuxojhszqbz ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 235592615444 4 months ago 104MB mysql 5.7 9cfcce23593a 4 months ago 448MB hello-world latest fce289e99eb9 21 months ago 1.84kB logstash 6.4.0 13b7a09abaf8 2 years ago 670MB kibana 6.4.0 a7e4cd1a7b45 2 years ago 667MB elasticsearch 6.4.0 1ac676545731 2 years ago 791MB# 解釋 REPOSITORY 鏡像倉庫源 TAG 鏡像標(biāo)簽 IMAGE ID 鏡像ID CREATE 鏡像創(chuàng)建時間 SIZE 鏡像大小# 可選向 Options:-a, --all # 列出所有鏡像-q, --quiet # 只顯示鏡像ID

    docker search搜索鏡像

    [root@izuf6cn5k7l8xuxojhszqbz ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 10075 [OK] mariadb MariaDB is a community-developed fork of MyS… 3694 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 736 [OK] percona Percona Server is a fork of the MySQL relati… 511 [OK] # 可選項 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 10075 [OK] mariadb MariaDB is a community-developed fork of MyS… 3694 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 736 [OK] percona Percona Server is a fork of the MySQL relati… 511 [OK] [root@izuf6cn5k7l8xuxojhszqbz ~]# docker search mysql --filter=stars=5000 NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 10075 [OK]

    docker pull 下載鏡像

    # docker pull 鏡像名[:tag] docker pull mysql [root@izuf6cn5k7l8xuxojhszqbz ~]# docker pull mysql Using default tag: latest # 如果不寫tag,默認(rèn)就是latest latest: Pulling from library/mysql bb79b6b2107f: Pull complete # 分層下載,docker images的核心,聯(lián)合文件系統(tǒng) 49e22f6fb9f7: Pull complete 842b1255668c: Pull complete 9f48d1f43000: Pull complete c693f0615bce: Pull complete 8a621b9dbed2: Pull complete 0807d32aef13: Pull complete 9eb4355ba450: Pull complete 6879faad3b6c: Pull complete 164ef92f3887: Pull complete 6e4a6e666228: Pull complete d45dea7731ad: Pull complete Digest: sha256:86b7c83e24c824163927db1016d5ab153a9a04358951be8b236171286e3289a4 #簽名 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest # 真實地址

    刪除鏡像 docker rmi

    docker rmi -f 8e85dd5c3255 # 刪除指定鏡像 docker rmi -f 容器ID 容器ID 容器ID 容器ID# 刪除多個鏡像 docker rmi -f ${docker images -aq} # 刪除全部鏡像

    容器命令

    說明:只有新建鏡像才能創(chuàng)建容器,Linux,下載一個CentOS來學(xué)習(xí)

    docker pull centos

    新建容器并啟動

    docker run [可選參數(shù)] image # 參數(shù)說明 --name # 指定容器名字 -it # 使用交互方法,進(jìn)入后臺查看內(nèi)容 -d # 后臺運(yùn)行 -p # 指定端口8080:8080-p 主機(jī)端口:容器端口(最常用主機(jī)端口和容器端口的映射)-p ip:主機(jī)端口:容器端口-p 容器端口容器端口 -P # 隨機(jī)分配端口# 測試,啟動并進(jìn)入容器 [root@izuf6cn5k7l8xuxojhszqbz /]# docker run -it kibana:6.4.0 /bin/bash bash-4.2$ [root@izuf6cn5k7l8xuxojhszqbz /]# [root@izuf6cn5k7l8xuxojhszqbz /]# docker run -it centos /bin/bash # 查看容器內(nèi)的CentOS,基本版本很多功能都不完善 [root@a87299a142d9 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var# 從容器中退回主機(jī) [root@a87299a142d9 /]# exit exit [root@izuf6cn5k7l8xuxojhszqbz /]# ls bin dev get-docker.sh ifstat-1.1.tar.gz lost+found mydata root srv usr boot dubbo-governance.log home lib media opt run sys var d etc ifstat-1.1 lib64 mnt proc sbin tmp zookeeper.out [root@izuf6cn5k7l8xuxojhszqbz /]# # 查看鏡像元數(shù)據(jù) [root@izuf6cn5k7l8xuxojhszqbz /]# docker inspect b96481cf196e [{"Id": "b96481cf196efa193fd2981636b7d1a71ea7a7379ce46b5b603b6520c05c1386","Created": "2020-10-20T01:00:24.252614556Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 12492,"ExitCode": 0,"Error": "","StartedAt": "2020-10-20T02:00:50.534736639Z","FinishedAt": "2020-10-20T02:00:50.11175616Z"},"Image": "sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566","ResolvConfPath": "/var/lib/docker/containers/b96481cf196efa193fd2981636b7d1a71ea7a7379ce46b5b603b6520c05c1386/resolv.conf","HostnamePath": "/var/lib/docker/containers/b96481cf196efa193fd2981636b7d1a71ea7a7379ce46b5b603b6520c05c1386/hostname","HostsPath": "/var/lib/docker/containers/b96481cf196efa193fd2981636b7d1a71ea7a7379ce46b5b603b6520c05c1386/hosts","LogPath": "/var/lib/docker/containers/b96481cf196efa193fd2981636b7d1a71ea7a7379ce46b5b603b6520c05c1386/b96481cf196efa193fd2981636b7d1a71ea7a7379ce46b5b603b6520c05c1386-json.log","Name": "/xenodochial_cerf","RestartCount": 0,"Driver": "overlay2","Platform": "linux","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": null,"HostConfig": {"Binds": null,"ContainerIDFile": "","LogConfig": {"Type": "json-file","Config": {}},"NetworkMode": "default","PortBindings": {},"RestartPolicy": {"Name": "no","MaximumRetryCount": 0},"AutoRemove": false,"VolumeDriver": "","VolumesFrom": null,"CapAdd": null,"CapDrop": null,"Capabilities": null,"Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "private","Cgroup": "","Links": null,"OomScoreAdj": 0,"PidMode": "","Privileged": false,"PublishAllPorts": false,"ReadonlyRootfs": false,"SecurityOpt": null,"UTSMode": "","UsernsMode": "","ShmSize": 67108864,"Runtime": "runc","ConsoleSize": [0,0],"Isolation": "","CpuShares": 0,"Memory": 0,"NanoCpus": 0,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": [],"BlkioDeviceReadBps": null,"BlkioDeviceWriteBps": null,"BlkioDeviceReadIOps": null,"BlkioDeviceWriteIOps": null,"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": [],"DeviceCgroupRules": null,"DeviceRequests": null,"KernelMemory": 0,"KernelMemoryTCP": 0,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": null,"OomKillDisable": false,"PidsLimit": null,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0,"MaskedPaths": ["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_list","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"ReadonlyPaths": ["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]},"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/0ee9111d7dc3c174492b9aa2f3254982ed4b5f42ce5afb7d95cde986ef4472d5-init/diff:/var/lib/docker/overlay2/e88cb8fc7bd56dd63cbb631a8babb55716e65fb3705e0e5c2e0d5da2e6e7737b/diff","MergedDir": "/var/lib/docker/overlay2/0ee9111d7dc3c174492b9aa2f3254982ed4b5f42ce5afb7d95cde986ef4472d5/merged","UpperDir": "/var/lib/docker/overlay2/0ee9111d7dc3c174492b9aa2f3254982ed4b5f42ce5afb7d95cde986ef4472d5/diff","WorkDir": "/var/lib/docker/overlay2/0ee9111d7dc3c174492b9aa2f3254982ed4b5f42ce5afb7d95cde986ef4472d5/work"},"Name": "overlay2"},"Mounts": [],"Config": {"Hostname": "b96481cf196e","Domainname": "","User": "","AttachStdin": true,"AttachStdout": true,"AttachStderr": true,"Tty": true,"OpenStdin": true,"StdinOnce": true,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd": ["/bin/bash"],"Image": "centos","Volumes": null,"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {"org.label-schema.build-date": "20200809","org.label-schema.license": "GPLv2","org.label-schema.name": "CentOS Base Image","org.label-schema.schema-version": "1.0","org.label-schema.vendor": "CentOS"}},"NetworkSettings": {"Bridge": "","SandboxID": "2e09d9086aeb52e6a6d5a7ada9b6c8531c0f7b322ccf6532cf169d3ba9756eab","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/2e09d9086aeb","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "63ef5e1ec21bc8973355b716d8dfa42e192efc0f1750ef18947b4f9d1410e512","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.4","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:04","Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "adb8cb6caa43e42b2f3963607bf576207abb4a6a2b76c43f3907503f17dbdad9","EndpointID": "63ef5e1ec21bc8973355b716d8dfa42e192efc0f1750ef18947b4f9d1410e512","Gateway": "172.17.0.1","IPAddress": "172.17.0.4","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:04","DriverOpts": null}}}} ] [root@izuf6cn5k7l8xuxojhszqbz /]#

    退出容器

    exit # 退出并停止容器 ctrl + P + Q # 退出但不停止容器

    列出所有Docker運(yùn)行容器

    docker ps # 參數(shù) 無參數(shù) # 列出當(dāng)前運(yùn)行的容器 -a # 列出當(dāng)前運(yùn)行的容器+歷史運(yùn)行的容器 -n=? # 顯示最近創(chuàng)建的容器 -q # 只顯示容器的編號

    刪除容器

    docker rm 容器ID # 刪除容器但是不能刪除運(yùn)行的容器,如果強(qiáng)制刪除rm -f docker rm -f ${docker ps -qa} # 刪除所有容器 docker ps -qa | xargs docker rm # 刪除所有容器

    啟動和停止容器

    docker start 容器ID # 啟動容器 docker restart 容器ID # 重啟容器 docker stop 容器ID # 停止容器 docker kill 容器ID # 強(qiáng)制停止當(dāng)前容器

    常用其他命令

    Docker進(jìn)程相關(guān)命令

    systemctl start docker # 啟動Docker容器 systemctl stop docker # 停止Docker容器 systemctl restart docker # 重啟Docker容器 systemctl status docker # 查看Docker容器狀態(tài) systemctl enable docker # 設(shè)置Docker開機(jī)自啟 docker top 容器ID # 查看容器進(jìn)程信息 [root@izuf6cn5k7l8xuxojhszqbz /]# docker top 0a01905d64f5 UID PID PPID C STIME TTY TIME CMD root 16217 16201 0 12:21 pts/0 00:00:00 /bin/bash [root@izuf6cn5k7l8xuxojhszqbz /]#

    后臺啟動命令

    # docker run -d 鏡像名# 問題docker ps 發(fā)現(xiàn)CentOS停止運(yùn)行# docker后臺運(yùn)行就必須有一個前臺進(jìn)程,docker發(fā)現(xiàn)沒有應(yīng)用就會自動停止 # nginx發(fā)現(xiàn)自己沒有提供服務(wù)就會停止運(yùn)行,就是沒有程序

    查看日志命令

    docker logs -f -t --tail nubmer 容器ID # 顯示日志 - ft # 顯示日志 --tail number # 顯示日志和行數(shù) [root@izuf6cn5k7l8xuxojhszqbz /]# docker logs -f -t --tail 10 d50135d540e2

    進(jìn)入當(dāng)前正在運(yùn)行的容器

    # 通常容器都是后臺運(yùn)行方式,經(jīng)常需要進(jìn)入容器,修改一些配置 # 方式一 docker exec -it 容器ID [root@izuf6cn5k7l8xuxojhszqbz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bc3159d51302 kibana:6.4.0 "/bin/bash" 34 minutes ago Up 34 minutes 5601/tcp romantic_euclid abe8d2653a16 elasticsearch:6.4.0 "/usr/local/bin/dock…" 35 minutes ago Up 35 minutes 9200/tcp, 9300/tcp elastic_ellis 89059be6a599 logstash:6.4.0 "/usr/local/bin/dock…" 36 minutes ago Up 36 minutes 5044/tcp, 9600/tcp nostalgic_einstein 059363cf2047 0346349a1a64 "/bin/bash" 46 minutes ago Up 46 minutes 80/tcp, 443/tcp nginx edb16178fcae centos "/bin/bash" About an hour ago Up About an hour nostalgic_allen a956dc76e579 redis "docker-entrypoint.s…" 3 months ago Up About an hour 0.0.0.0:6379->6379/tcp redis 635d1b7ad286 mysql:5.7 "docker-entrypoint.s…" 3 months ago Up About an hour 0.0.0.0:3306->3306/tcp, 33060/tcp mysql [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it 635d1b7ad286 /bin/bash root@635d1b7ad286:/## 方式二 docker attach 容器ID # 進(jìn)入容器 [root@izuf6cn5k7l8xuxojhszqbz /]# docker attach 635d1b7ad286 [root@izuf6cn5k7l8xuxojhszqbz /]# ...# 兩種方式的區(qū)別 docker exec -it 容器ID # 進(jìn)入容器并開啟一個新的終端 docker attach 容器ID # 進(jìn)入正在執(zhí)行的終端,并不會開啟新的進(jìn)程

    從容器內(nèi)拷貝文件到主機(jī)

    docker cp # 進(jìn)入docker容器內(nèi) [root@izuf6cn5k7l8xuxojhszqbz /]# docker exec -it edb16178fcae /bin/bash [root@edb16178fcae /]# cd /home [root@edb16178fcae home]# ls # 在容器內(nèi)home創(chuàng)建文件 [root@edb16178fcae home]# touch test.java # 退出容器 [root@edb16178fcae home]# exit exit [root@izuf6cn5k7l8xuxojhszqbz /]# ls bin d dubbo-governance.log get-docker.sh ifstat-1.1 lib lost+found mnt opt root sbin sys usr zookeeper.out boot dev etc home ifstat-1.1.tar.gz lib64 media mydata proc run srv tmp var # 將docker內(nèi)創(chuàng)建的文件拷貝到主機(jī)目錄下 [root@izuf6cn5k7l8xuxojhszqbz /]# docker cp edb16178fcae:/home/test.java /home [root@izuf6cn5k7l8xuxojhszqbz /]# cd home [root@izuf6cn5k7l8xuxojhszqbz home]# ls admin es FastDFS hadoop mysql oracle test.java [root@izuf6cn5k7l8xuxojhszqbz home]## 拷貝是一個手動過程,將來可以使用-v 卷的技術(shù)字段關(guān)聯(lián)容器目錄和主機(jī)目錄 /home /home

    總結(jié)

    實戰(zhàn)練習(xí)

    Docker 安裝Ninx

    # docker search nginx # 搜索鏡像 # docker pull nginx:1.1.0 # 下載指定版本鏡像 # 查看鏡像 [root@izuf6cn5k7l8xuxojhszqbz /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0d120b6ccaa8 2 months ago 215MB redis latest 235592615444 4 months ago 104MB mysql 5.7 9cfcce23593a 4 months ago 448MB rabbitmq 3.7.15-management f05c3eb3cf91 15 months ago 179MB hello-world latest fce289e99eb9 21 months ago 1.84kB mongo 3.2 fb885d89ea5c 23 months ago 300MB logstash 6.4.0 13b7a09abaf8 2 years ago 670MB kibana 6.4.0 a7e4cd1a7b45 2 years ago 667MB elasticsearch 6.4.0 1ac676545731 2 years ago 791MB nginx 1.10 0346349a1a64 3 years ago 182MB # 參數(shù)解釋 # -d 后臺運(yùn)行 # --name 為容器命名 # -p 主機(jī)端口:容器端口 [root@izuf6cn5k7l8xuxojhszqbz /]# docker run -d --name ngnix01 -p 3344:80 nginx:1.10 fe9479484c55a8aa62719a65cf146c14ce9bfadf5e20090afcb8e38703ac2bec [root@izuf6cn5k7l8xuxojhszqbz /]# curl localhost:3344# 進(jìn)入容器 [root@izuf6cn5k7l8xuxojhszqbz /]# docker exec -it ngnix01 /bin/bash root@fe9479484c55:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz root@fe9479484c55:/# cd /etc/nginx root@fe9479484c55:/etc/nginx# ls conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf root@fe9479484c55:/etc/nginx#

    Docker 安裝Tomcat

    # docker pull tomcat:9.0 下載鏡像tomcat9 [root@izuf6cn5k7l8xuxojhszqbz /]# docker run -d --name tomcat9 -p 3355:8080 tomcat:9.0 [root@izuf6cn5k7l8xuxojhszqbz /]# docker exec -it tomcat9 /bin/bash root@5f17e0823840:/usr/local/tomcat# ls BUILDING.txt LICENSE README.md RUNNING.txt conf logs temp webapps.dist CONTRIBUTING.md NOTICE RELEASE-NOTES bin lib native-jni-lib webapps work root@5f17e0823840:/usr/local/tomcat# cd webapps root@5f17e0823840:/usr/local/tomcat/webapps# ls root@5f17e0823840:/usr/local/tomcat/webapps#

    Docker 安裝Es+kibana

    # ES暴露端口多 # ES十分耗內(nèi)存 # ES的目錄一般要存放安全目錄掛載 # --net somenetwork網(wǎng)絡(luò)配置 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag # 查看docker stats docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPS="-Xms64m -Xms512m" elasticsearch:tag

    Docker安裝MinIO

    mkdir -p /data/minio/config mkdir -p /data/minio/data docker run -p 9000:9000 -p 9090:9090 \--net=host \--name minio \-d --restart=always \-e "MINIO_ACCESS_KEY=username" \-e "MINIO_SECRET_KEY=password" \-v /mydata/minio/data:/mydata/minio/data \-v /mydata/minio/config:/mydata/minio/config \minio/minio server \/data --console-address ":9090" -address ":9000"

    可視化

    • portainer(先用這個)

      docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
    • Rancher(CI/CD再用)

    docker 鏡像

    commit鏡像

    docker commit 提交容器成為一個新的副本 # 命令和git原理類似 docker commit -m="提交描述信息" -a="作者" 容器ID 目標(biāo)鏡像:[TAG] docker commit -a="steven" -m="add webapps app" 5f17e0823840 tomcat02:1.0.0

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

    使用數(shù)據(jù)卷

    方式一:使用命令掛載 -v

    docker run -d -it -v 主機(jī)目錄:容器目錄 -p 主機(jī)端口:容器端口 --name 容器名字 [root@izuf6cn5k7l8xuxojhszqbz home]# docker run -it -v /home/ceshi:/home centos /bin/bash

    測試文件同步

    好處修改只需要在主機(jī)修改即可,容器內(nèi)會自動同步

    安裝MySQL

    # 獲取鏡像 [root@izuf6cn5k7l8xuxojhszqbz /]# docker pull mysql:5.7 # 運(yùn)行容器需要掛載!#安裝啟動MySQL,需要設(shè)置密碼,要注意 # 啟動MySQL -d 后臺運(yùn)行 -p 端口映射 -v 數(shù)據(jù)卷掛載 -e 環(huán)境配置 --name 容器名字 [root@izuf6cn5k7l8xuxojhszqbz /]# docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=09091995aq --name mysql5.7 mysql:5.7# 啟動成功后,用Navicat鏈接測試# 在本地創(chuàng)建數(shù)據(jù)庫,查看映射路徑

    具名和匿名掛載

    # 匿名掛載 # -v 查看容器內(nèi)路徑 docker run -d --name nginx01 -v /etc/nginx nginx # 查看卷 volume [root@izuf6cn5k7l8xuxojhszqbz /]# docker volume ls DRIVER VOLUME NAME local 843c675d3d847a6c57927c79a5886559482bf4916118f91627bfa35ebbbec45b # 這種就是匿名掛載 -v 只寫了容器內(nèi)的路徑,沒有寫主機(jī)路徑# 具名掛載 [root@izuf6cn5k7l8xuxojhszqbz /]# docker run -d --name nginx1.10 -p 3344:80 -v juming_nginx:/etc/nginx nginx:1.10 1c70f133efdc35f9ce52ddafc7e128d88e833290e3815e2c8f1e5c2699319eb7 [root@izuf6cn5k7l8xuxojhszqbz /]# docker volume ls DRIVER VOLUME NAME local juming_nginx

    所有的docker在沒有指定目錄的情況下默認(rèn)放在:/var/lib/docker/volumes/xxx/_data目錄下

    # 具名掛載、匿名掛載、指定目錄掛載 -v 容器內(nèi)路徑 # 匿名掛載 -v 容器名字:/容器內(nèi)路徑 # 具名掛載 -v 主機(jī)路徑::/容器內(nèi)路徑 # 指定路徑掛載

    拓展

    # 通過 -v 容器內(nèi)路徑控制讀寫權(quán)限 # ro readonly 只讀 # rw readwrite 讀寫 docker run -d --name nginx1.10 -p 3344:80 -v juming_nginx:/etc/nginx:ro nginx:1.10 docker run -d --name nginx1.10 -p 3344:80 -v juming_nginx:/etc/nginx:rw nginx:1.10# ro只能通過主機(jī)修改配置,容器內(nèi)無法改變

    初識DockerFile

    DockerFile構(gòu)建Docker鏡像文件!命令腳本體驗

    # 創(chuàng)建DockerFile文件,名字可以隨意,建議就用dockefile # 文件中的內(nèi)容 指令(大寫) 參數(shù) FROM centos VOLUME ['volume01','volume02']CMD echo '-----------end-------------' CMD /bin/bash # 這里的每個命令就是docker鏡像的一層

    啟動自己的鏡像

    查看卷掛在路徑:docker inspect 容器ID

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

    多個MySQL同步數(shù)據(jù)

    docker run -it --name 容器名字 --volumes-from 父容器名字 鏡像名稱:版本號 docker run -it --name docker02 --volumes-from docker01 stevenyin/centos:1.10

    DockerFile

    DockerFile介紹

    DockerFile是用來構(gòu)建docker鏡像的文件!命令參數(shù)腳本

    構(gòu)建步驟

  • 編寫dockerfile腳本文件
  • 通過docker build -f dockerfile路徑 -t 鏡像名稱(stevenyin/centos:1.1.0) .
  • 運(yùn)行鏡像 docker run
  • 發(fā)布鏡像 docker push(DockerHub、阿里云鏡像倉庫)
  • 查看一下官方是怎做的

    DockerFile構(gòu)建過程

    基礎(chǔ)知識

  • 每一個保留關(guān)鍵字(指令)都必須是大寫
  • 從上到下依次執(zhí)行
  • #代表注釋
  • 每一條指令都會構(gòu)建一個鏡像層
  • dockerfile是面向開發(fā)的,以后發(fā)布項目,做鏡像就需要編寫dockerfile文件

    步驟

  • DockerFile:構(gòu)建文件,定義步驟,相當(dāng)于源代碼
  • DockerImages:通過DockerFile構(gòu)建生成鏡像,最終發(fā)布和運(yùn)行產(chǎn)品
  • DockerContainer:容器就是為鏡像運(yùn)行提供環(huán)境
  • DockerFile指令

    FROM # 基礎(chǔ)鏡像一切從這里構(gòu)建 MAINNTAINER # 鏡像是誰寫的,作者+郵箱 RUN # 鏡像構(gòu)建是需要運(yùn)行的命令 ADD # tomcat鏡像,tomcat是一個壓縮包,添加內(nèi)容 WORKDIR # 鏡像工作目錄 VOLUME # 目錄掛載,掛載卷 EXPOSE # 暴漏端口 CMD # 指定容器啟動時需要運(yùn)行的命令,只有最后一個命令會生效,可被替代 ENTRYPOINT # 指定容器啟動時需要運(yùn)行的命令,可以命令追加 ONBUILD # 當(dāng)運(yùn)行一個被繼承的 DockerFile 會觸發(fā)ONBUILD COPY # 類似于ADD,將文件拷貝到容器中 ENV # 設(shè)置環(huán)境變量

    構(gòu)建centos

    # 1.編寫配置文件dockerfile文件 [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# vim mydockerfile-centos [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# cat mydockerfile-centos FROM centos MAINTAINER steven<yinhaoye@qq.com> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD $MYPATH CMD echo "------end------" CMD /bin/bash [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# # 2.通過文件構(gòu)建鏡像 # 命令 docker build -f dockerfile -t 鏡像:[tag] . [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker build -f /home/dockerfile/mydockerfile-centos -t stevenyin/centos:1.11 . Successfully built 502fedcf049b Successfully tagged stevenyin/centos:1.11

    查看docker構(gòu)建鏡像歷史

    # 查看docker 鏡像構(gòu)建歷史 # docker history 鏡像ID [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker history 502fedcf049b IMAGE CREATED CREATED BY SIZE COMMENT 502fedcf049b 12 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B a77ba559c57e 12 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B 32e6bf5b4d27 12 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "$MYP… 0B 5c37e637387e 12 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B b80d50163d6d 12 minutes ago /bin/sh -c yum -y install net-tools 22.8MB c682c6f2c7e5 12 minutes ago /bin/sh -c yum -y install vim 57.2MB a7a7c274e0db 13 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B 2cd2577889b9 13 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B 4c14c20e220e 13 minutes ago /bin/sh -c #(nop) MAINTAINER steven<yinhaoy… 0B 0d120b6ccaa8 2 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 2 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B <missing> 2 months ago /bin/sh -c #(nop) ADD file:538afc0c5c964ce0d… 215MB [root@izuf6cn5k7l8xuxojhszqbz dockerfile]#

    CMD和ENTRYPOINT的區(qū)別

    CMD # 指定容器啟動時需要運(yùn)行的命令,只有最后一個命令會生效,可被替代 ENTRYPOINT # 指定容器啟動時需要運(yùn)行的命令,可以命令追加

    CMD測試

    # 1.編寫dockerfile文件mydockerfile-cmd FROM centos CMD ["ls","-a"] # 2.構(gòu)建鏡像 [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker build -f mydockerfile-cmd -t stevenyin/cmd:1.10 . # run運(yùn)行,發(fā)現(xiàn) ls -a 生效了 [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker run stevenyin/cmd:1.10 . .. .dockerenv bin dev etc home lib lib64 lost+found opt root run sbin srv sys tmp usr var # 3. 想追加命令 -l ls -al [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker run stevenyin/cmd:1.10 -l docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"-l\": executable file not found in $PATH": unknown. # CMD情況下-l 替換了CMD ["ls","-a"] -l不是命令所以報錯

    ENTRYPOINT測試

    # 1.編寫DockerFile文件 FROM centos ENTRYPOINT ["ls","-a"] # 2.構(gòu)建鏡像 docker build -f mydockerfile-entrypoint -t stevenyin/entrypoint:1.10 . [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker run stevenyin/entrypoint:1.10 . .. .dockerenv bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@izuf6cn5k7l8xuxojhszqbz dockerfile]# docker run stevenyin/entrypoint:1.10 -l total 56 drwxr-xr-x 1 root root 4096 Oct 25 02:22 . drwxr-xr-x 1 root root 4096 Oct 25 02:22 .. -rwxr-xr-x 1 root root 0 Oct 25 02:22 .dockerenv lrwxrwxrwx 1 root root 7 May 11 2019 bin -> usr/bin drwxr-xr-x 5 root root 340 Oct 25 02:22 dev drwxr-xr-x 1 root root 4096 Oct 25 02:22 etc drwxr-xr-x 2 root root 4096 May 11 2019 home lrwxrwxrwx 1 root root 7 May 11 2019 lib -> usr/lib lrwxrwxrwx 1 root root 9 May 11 2019 lib64 -> usr/lib64 drwx------ 2 root root 4096 Aug 9 21:40 lost+found drwxr-xr-x 2 root root 4096 May 11 2019 media drwxr-xr-x 2 root root 4096 May 11 2019 mnt drwxr-xr-x 2 root root 4096 May 11 2019 opt dr-xr-xr-x 120 root root 0 Oct 25 02:22 proc dr-xr-x--- 2 root root 4096 Aug 9 21:40 root drwxr-xr-x 11 root root 4096 Aug 9 21:40 run lrwxrwxrwx 1 root root 8 May 11 2019 sbin -> usr/sbin drwxr-xr-x 2 root root 4096 May 11 2019 srv dr-xr-xr-x 13 root root 0 Oct 24 02:53 sys drwxrwxrwt 7 root root 4096 Aug 9 21:40 tmp drwxr-xr-x 12 root root 4096 Aug 9 21:40 usr drwxr-xr-x 20 root root 4096 Aug 9 21:40 var [root@izuf6cn5k7l8xuxojhszqbz dockerfile]#

    發(fā)布鏡像

    DockerHub

  • 注冊賬號:https://hub.docker.com/

  • 登錄賬號

    [root@izuf6cn5k7l8xuxojhszqbz software]# docker login --helpUsage: docker login [OPTIONS] [SERVER]Log in to a Docker registry. If no server is specified, the default is defined by the daemon.Options:-p, --password string Password--password-stdin Take the password from stdin-u, --username string Username [root@izuf6cn5k7l8xuxojhszqbz software]# [root@izuf6cn5k7l8xuxojhszqbz software]# docker login -u stevenyin Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded [root@izuf6cn5k7l8xuxojhszqbz software]#
  • 登錄完畢后就可以提交鏡像了,就是一部docker push

  • [root@izuf6cn5k7l8xuxojhszqbz software]# docker push stevenyin/centos:1.11 The push refers to repository [docker.io/stevenyin/centos] 5bf7e4a8471d: Pushed bf760cbda826: Pushed 291f6e44771a: Layer already exists digest1.11: digest: sha256:530a45736f79e50515baa5591fc76635184dd783089ec3e1ebb21c261137d8db size: 953 # 為鏡像增加tag: docker tag stevenyin/centos:1.12

    發(fā)布到阿里云鏡像服務(wù)上

  • 登陸阿里云
  • 找到容器鏡像服務(wù)
  • 創(chuàng)建命名空間
  • 創(chuàng)建容器鏡像
  • 推送鏡像具體步驟

    1. 登錄阿里云Docker Registry $ sudo docker login --username=yinghaoye123aq registry.cn-shanghai.aliyuncs.com 用于登錄的用戶名為阿里云賬號全名,密碼為開通服務(wù)時設(shè)置的密碼。您可以在訪問憑證頁面修改憑證密碼。2. 從Registry中拉取鏡像 $ sudo docker pull registry.cn-shanghai.aliyuncs.com/aliyun-stevenyin/stevenyin:[鏡像版本號] 3. 將鏡像推送到Registry $ sudo docker login --username=yinghaoye123aq registry.cn-shanghai.aliyuncs.com $ sudo docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/aliyun-stevenyin/stevenyin:[鏡像版本號] $ sudo docker push registry.cn-shanghai.aliyuncs.com/aliyun-stevenyin/stevenyin:[鏡像版本號] 請根據(jù)實際鏡像信息替換示例中的[ImageId][鏡像版本號]參數(shù)。4. 選擇合適的鏡像倉庫地址 從ECS推送鏡像時,可以選擇使用鏡像倉庫內(nèi)網(wǎng)地址。推送速度將得到提升并且將不會損耗您的公網(wǎng)流量。如果您使用的機(jī)器位于VPC網(wǎng)絡(luò),請使用 registry-vpc.cn-shanghai.aliyuncs.com 作為Registry的域名登錄。 5. 示例 使用"docker tag"命令重命名鏡像,并將它通過專有網(wǎng)絡(luò)地址推送至Registry。$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB $ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816 使用 "docker push" 命令將該鏡像推送至遠(yuǎn)程。$ sudo docker push registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816
  • Docker 網(wǎng)絡(luò)

    理解Docker0

    # [root@izuf6cn5k7l8xuxojhszqbz ~]# docker run -d -p 3355:8080 --name tomcat9 tomcat:9.0 # 查看容器內(nèi)網(wǎng)絡(luò)地址 ip addr,啟動后會發(fā)現(xiàn)有261: eth0@if262 IP地址 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it tomcat9 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever 261: eth0@if262: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever [root@izuf6cn5k7l8xuxojhszqbz ~]# # linux 能不能ping通容器內(nèi)部 [root@izuf6cn5k7l8xuxojhszqbz ~]# ping 172.17.0.2 PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. 64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.086 ms 64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.070 ms 64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.060 ms

    原理

  • 每啟動一個docker容器,docker就會給docker容器分配一個IP,只要安裝docker就會產(chǎn)生docker0的橋接模式的網(wǎng)卡,使用的技術(shù)是evth-pair技術(shù)!
  • 再次啟動一個容器發(fā)現(xiàn)又多了一對網(wǎng)卡
  • # 容器帶來的網(wǎng)卡都是一對一對的 # evth-pair就是一對虛擬的網(wǎng)絡(luò)設(shè)備接口,他們都是成對出現(xiàn)的一端連著協(xié)議,另一端彼此相連
  • 兩個容器間可以ping通
  • [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it tomcat9 ping 172.17.0.3 # 容器間是可以ping通的

    網(wǎng)絡(luò)模型

    在不指定網(wǎng)絡(luò)的情況下,都是由docker0路由的,docker會默認(rèn)分派一個可用的IP

    docker 使用的是liunx中的橋接,宿主機(jī)是docker中的網(wǎng)橋,docker0

    –link

    # 不能通過服務(wù)名ping通另一個容器,只能通過IP [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it tomcat9.1 ping tomcat9 ping: tomcat9: Name or service not known [root@izuf6cn5k7l8xuxojhszqbz ~]# # 通過--link可以通過容器名使容器間進(jìn)行聯(lián)通[root@izuf6cn5k7l8xuxojhszqbz ~]# docker run -d -P --name tomcat9.2 --link tomcat9 tomcat:9.0 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it tomcat9.2 ping tomcat9 PING tomcat9 (172.17.0.2) 56(84) bytes of data. 64 bytes from tomcat9 (172.17.0.2): icmp_seq=1 ttl=64 time=0.095 ms 64 bytes from tomcat9 (172.17.0.2): icmp_seq=2 ttl=64 time=0.066 ms 64 bytes from tomcat9 (172.17.0.2): icmp_seq=3 ttl=64 time=0.064 ms

    探究inspect

    tomcat9.2是在本地配置了tomcat9

    # 在hosts里配置,遠(yuǎn)離在這里發(fā)現(xiàn) [root@izuf6cn5k7l8xuxojhszqbz /]# docker exec -it tomcat9.2 cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 tomcat9 a3d12cff39da 172.17.0.4 7f5cb56cad3f [root@izuf6cn5k7l8xuxojhszqbz /]#

    本質(zhì)探究: – link就是在hosts文件中增加了172.17.0.2 tomcat9 a3d12cff39da 的映射

    局限:docker0不支持容器名訪問

    自定義網(wǎng)絡(luò)

    查看網(wǎng)絡(luò)

    網(wǎng)絡(luò)模式

    bridge:橋接網(wǎng)絡(luò)docker(默認(rèn),自己創(chuàng)建也是有橋接模式)

    none:不配置網(wǎng)絡(luò)

    host:和宿主機(jī)共享網(wǎng)絡(luò)

    container:容器內(nèi)可以連通(用的少,不建議使用)

    測試

    # 直接啟動 --net bridge 默認(rèn)就是docker0 docker run -d -P --name tomcat9 --net bridge tomcat:9.0# docker0不能通過域名訪問,可以通過--link 連通# 自定義網(wǎng)路 --driver bridge 橋接模式 --subnet 192.168.0.0/16 子網(wǎng)地址 --gateway 192.168.0.1 網(wǎng)關(guān) [root@izuf6cn5k7l8xuxojhszqbz ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet 36c4197f8b73de837495b148d4b95a2f03c6747608733a2b5d506b98c653f034 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 1edaf6a32eb9 bridge bridge local 18b32561b08d host host local abdd0e9a3c22 mydata_default bridge local 36c4197f8b73 mynet bridge local a7f1b5a0ad78 none null local [root@izuf6cn5k7l8xuxojhszqbz ~]#

    # 使用自定義網(wǎng)絡(luò)啟動容器 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker run -d -P --name tomcat9.1 --net mynet tomcat:9.0 658aab97504ae8ee63204c78bd431fc37b41677c51121fa96c2041961d912a80 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker run -d -P --name tomcat9.2 --net mynet tomcat:9.0 97216395cd5188beab139a3f957019d42aa1b9da91a26d6b3cfd907fabc6b78f # 查看自定義網(wǎng)絡(luò) [root@izuf6cn5k7l8xuxojhszqbz ~]# docker network inspect mynet [{"Name": "mynet","Id": "36c4197f8b73de837495b148d4b95a2f03c6747608733a2b5d506b98c653f034","Created": "2020-10-25T21:45:21.745587216+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "192.168.0.0/16","Gateway": "192.168.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {"658aab97504ae8ee63204c78bd431fc37b41677c51121fa96c2041961d912a80": {"Name": "tomcat9.1","EndpointID": "168eb519cd776907149fd9d97121e0a068f2ea28a6b81e86cbac04b742d82721","MacAddress": "02:42:c0:a8:00:02","IPv4Address": "192.168.0.2/16","IPv6Address": ""},"97216395cd5188beab139a3f957019d42aa1b9da91a26d6b3cfd907fabc6b78f": {"Name": "tomcat9.2","EndpointID": "00b1cc23a06c62087e7606b8b5286807ce0b7c3aca7d43a26cb8362147d10416","MacAddress": "02:42:c0:a8:00:03","IPv4Address": "192.168.0.3/16","IPv6Address": ""}},"Options": {},"Labels": {}} ] [root@izuf6cn5k7l8xuxojhszqbz ~]# # 再次測試不使用--link也可以通過容器名訪問 [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it tomcat9.1 ping tomcat9.2 PING tomcat9.2 (192.168.0.3) 56(84) bytes of data. 64 bytes from tomcat9.2.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.065 ms 64 bytes from tomcat9.2.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.070 ms 64 bytes from tomcat9.2.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.066 ms [root@izuf6cn5k7l8xuxojhszqbz ~]#

    網(wǎng)絡(luò)聯(lián)通

    # 網(wǎng)絡(luò)聯(lián)通 docker network connect 網(wǎng)絡(luò)名 容器名docker network connect mynet tomcat9.2.2# 聯(lián)通之后將tomcat9.1.1放入mynet網(wǎng)絡(luò)下# 一個容器兩個IP

    [root@izuf6cn5k7l8xuxojhszqbz ~]# docker exec -it tomcat9.1 ping tomcat9.1.1 PING tomcat9.1.1 (192.168.0.4) 56(84) bytes of data. 64 bytes from tomcat9.1.1.mynet (192.168.0.4): icmp_seq=1 ttl=64 time=0.101 ms 64 bytes from tomcat9.1.1.mynet (192.168.0.4): icmp_seq=2 ttl=64 time=0.073 ms 64 bytes from tomcat9.1.1.mynet (192.168.0.4): icmp_seq=3 ttl=64 time=0.082 ms [root@izuf6cn5k7l8xuxojhszqbz ~]#

    實戰(zhàn)部署Redis

    安裝單機(jī)版Redis

    1.下載鏡像

    docker pull redis

    2.創(chuàng)建掛載的目錄和配置文件

    mkdir -p /mydata/redis/conf [root@iZwz9hw4qywrrl4vj6o0j1Z ~]# cd /mydata/redis/conf/ [root@iZwz9hw4qywrrl4vj6o0j1Z conf]# touch redis.conf

    3.啟動redis

    # 結(jié)果 [root@iZwz9hw4qywrrl4vj6o0j1Z conf]# docker run -p 6379:6379 --name redis -v /mydata/redis/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

    4.命令解釋

    命令解釋
    -p 6379:6379 端口映射:前表示主機(jī)部分,:后表示容器部分。
    –name myredis 指定該容器名稱,查看和進(jìn)行操作都比較方便。
    -v 掛載目錄,規(guī)則與端口映射相同。
    -d redis 表示后臺啟動redis
    redis-server /etc/redis/redis.conf 以配置文件啟動redis,加載容器內(nèi)的conf文件,最終找到的是掛載的目錄/usr/local/docker/redis.conf
    appendonly yes 開啟redis 持久化

  • 進(jìn)入redis
  • [root@iZwz9hw4qywrrl4vj6o0j1Z conf]# docker exec -it redis redis-cli

    實戰(zhàn)部署Redis集群

    for port in $(seq 1 6);\ do \ mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >/mydata/redis/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.30.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done # 啟動reids容器 docker run -p 6371:6379 -p 16371:16379 --name redis-1 \ -v /mydata/redis/node-1/data:/data \ -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.30.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6372:6379 -p 16372:16379 --name redis-2 \ -v /mydata/redis/node-2/data:/data \ -v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.30.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6373:6379 -p 16373:16379 --name redis-3 \ -v /mydata/redis/node-3/data:/data \ -v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.30.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6374:6379 -p 16374:16379 --name redis-4 \ -v /mydata/redis/node-4/data:/data \ -v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.30.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6375:6379 -p 16375:16379 --name redis-5 \ -v /mydata/redis/node-5/data:/data \ -v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.30.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6376:6379 -p 16376:16379 --name redis-6 \ -v /mydata/redis/node-6/data:/data \ -v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.30.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf# 創(chuàng)建集群 [root@izuf6cn5k7l8xuxojhszqbz /]# docker exec -it redis-1 /bin/sh /data # redis-cli --cluster create 172.30.0.11:6379 172.30.0.12:6379 172.30.0.13:6379 172.30.0.14:6379 172.30.0.15:6379 172.30.0.16:6379 --c luster-replicas 1 >>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 172.30.0.15:6379 to 172.30.0.11:6379 Adding replica 172.30.0.16:6379 to 172.30.0.12:6379 Adding replica 172.30.0.14:6379 to 172.30.0.13:6379 M: 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd 172.30.0.11:6379slots:[0-5460] (5461 slots) master M: 039ee87ac86de914417233448396a3c089669a2b 172.30.0.12:6379slots:[5461-10922] (5462 slots) master M: f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 172.30.0.13:6379slots:[10923-16383] (5461 slots) master S: 534e73cf9cd34bac9d43fce82cdb2e1be90d9fdf 172.30.0.14:6379replicates f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 S: 20fe1f4923f790377cbaffaf99f9d45558bbd017 172.30.0.15:6379replicates 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd S: a7562cb7fa1cda8321295b12e3ffc3d844665cce 172.30.0.16:6379replicates 039ee87ac86de914417233448396a3c089669a2b Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join .. >>> Performing Cluster Check (using node 172.30.0.11:6379) M: 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd 172.30.0.11:6379slots:[0-5460] (5461 slots) master1 additional replica(s) S: 20fe1f4923f790377cbaffaf99f9d45558bbd017 172.30.0.15:6379slots: (0 slots) slavereplicates 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd S: 534e73cf9cd34bac9d43fce82cdb2e1be90d9fdf 172.30.0.14:6379slots: (0 slots) slavereplicates f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 M: 039ee87ac86de914417233448396a3c089669a2b 172.30.0.12:6379slots:[5461-10922] (5462 slots) master1 additional replica(s) M: f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 172.30.0.13:6379slots:[10923-16383] (5461 slots) master1 additional replica(s) S: a7562cb7fa1cda8321295b12e3ffc3d844665cce 172.30.0.16:6379slots: (0 slots) slavereplicates 039ee87ac86de914417233448396a3c089669a2b [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. /data # # 測試集群 /data # redis-cli -c 127.0.0.1:6379> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:480 cluster_stats_messages_pong_sent:475 cluster_stats_messages_sent:955 cluster_stats_messages_ping_received:470 cluster_stats_messages_pong_received:480 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:955 127.0.0.1:6379> cluster nodes 20fe1f4923f790377cbaffaf99f9d45558bbd017 172.30.0.15:6379@16379 slave 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd 0 1603708641983 5 connected 534e73cf9cd34bac9d43fce82cdb2e1be90d9fdf 172.30.0.14:6379@16379 slave f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 0 1603708641000 4 connected 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd 172.30.0.11:6379@16379 myself,master - 0 1603708640000 1 connected 0-5460 039ee87ac86de914417233448396a3c089669a2b 172.30.0.12:6379@16379 master - 0 1603708640580 2 connected 5461-10922 f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 172.30.0.13:6379@16379 master - 0 1603708640000 3 connected 10923-16383 a7562cb7fa1cda8321295b12e3ffc3d844665cce 172.30.0.16:6379@16379 slave 039ee87ac86de914417233448396a3c089669a2b 0 1603708640000 6 connected 127.0.0.1:6379> set a b -> Redirected to slot [15495] located at 172.30.0.13:6379 OK 172.30.0.13:6379> get a ^C /data # redis-cli -c 127.0.0.1:6379> get a -> Redirected to slot [15495] located at 172.30.0.14:6379 "b" 172.30.0.14:6379> cluster nodes 534e73cf9cd34bac9d43fce82cdb2e1be90d9fdf 172.30.0.14:6379@16379 myself,master - 0 1603708963000 7 connected 10923-16383 a7562cb7fa1cda8321295b12e3ffc3d844665cce 172.30.0.16:6379@16379 slave 039ee87ac86de914417233448396a3c089669a2b 0 1603708964000 2 connected 039ee87ac86de914417233448396a3c089669a2b 172.30.0.12:6379@16379 master - 0 1603708964000 2 connected 5461-10922 f9de7fd7bf12f7a10ac24155b6b4d8fef6d61ad6 172.30.0.13:6379@16379 master,fail - 1603708902628 1603708901000 3 connected 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd 172.30.0.11:6379@16379 master - 0 1603708965564 1 connected 0-5460 20fe1f4923f790377cbaffaf99f9d45558bbd017 172.30.0.15:6379@16379 slave 96d6e1f4ad84f8c9101401bea7408f97e6c56bcd 0 1603708964563 1 connected 172.30.0.14:6379>

    docker搭建集群完成!

    安裝ZooKeeper

    一、單機(jī)搭建

  • 下載鏡像

    [root@izuf6cn5k7l8xuxojhszqbz ~]# docker pull zookeeper:3.5
  • 創(chuàng)建數(shù)據(jù)掛載目錄

    /mydata/zookeeper/conf
    /mydata/zookeeper/data
    /mydata/zookeeper/datalog

  • 運(yùn)行zookeeper

    docker run -d --name zookeeper3.5 \ --restart always \ -p 2181:2181 -p 2888:2888 -p 3888:3888 \ -v /mydata/zookeeper/conf:/conf \ -v /mydata/zookeeper/data:/data \ -v /mydata/zookeeper/datalog:/datalog \ zookeeper:3.5
  • 進(jìn)入zookeeper容器

    [root@izuf6cn5k7l8xuxojhszqbz zookeeper]# docker exec -it zookeeper3.5 /bin/bash root@1d0a2f5178b8:/apache-zookeeper-3.5.8-bin/bin# ls README.txt zkCli.cmd zkEnv.cmd zkServer-initialize.sh zkServer.sh zkTxnLogToolkit.sh zkCleanup.sh zkCli.sh zkEnv.sh zkServer.cmd zkTxnLogToolkit.cmd root@1d0a2f5178b8:/apache-zookeeper-3.5.8-bin/bin# ./zkCli.sh Connecting to localhost:2181 log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Welcome to ZooKeeper! JLine support is enabledWATCHER::WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] create /test test Created /test [zk: localhost:2181(CONNECTED) 1] get /test test [zk: localhost:2181(CONNECTED) 2]
  • 二、集群搭建

  • 在/mydata/下創(chuàng)建zookeeper-cluster文件夾

    mkdir zookeeper-cluster
  • 在/mydata/zookeeper-cluster下創(chuàng)建三個zookeeper0x文件夾

    mkdir zookeeper01 mkdir zookeeper02 mkdir zookeeper03
  • 每個zookeeper0x下建立如下

    mkdir conf data datalog
  • 在/mydata/zookeeper-cluster目錄下創(chuàng)建docker-compose.yml文件并編寫
  • touch docker-compose.yml //創(chuàng)建文件 vim docker-compose.yml //進(jìn)入vim編譯器

    編寫docker-compose.yml文件

    version: '3'#版本號固定寫法 services:zoo1:image: zookeeper #使用的鏡像restart: always #宕機(jī)后自動重啟hostname: zoo1 #承載zookeeper容器的主機(jī)(父容器)名 可省略container_name: zoo1 #容器名privileged: true #使用該參數(shù),container內(nèi)的root擁有真正的root權(quán) privileged啟動的容器,可以看到很多host上的設(shè)備,并且可以執(zhí)行mount。甚至允許你在docker容器中啟動docker容器。ports: #主機(jī)和容器的端口映射- "2181:2181" volumes: #創(chuàng)建zookeeper容器在宿主機(jī)的掛載目錄- /mydata/zookeeper-cluster/zookeeper01/data:/data #數(shù)據(jù)- /mydata/zookeeper-cluster/zookeeper01/datalog:/datalog #日志- /mydata/zookeeper-cluster/zookeeper01/conf:/conf #配置文件environment: #zookeeper3.4 和zookeeper 3.5在docker環(huán)境下搭建集群差異就在這里 #zoo1為容器名,也是主機(jī)名,意思為使用容器的內(nèi)網(wǎng)通信(1)Zookeeper3.5 中指定的 ZOO_SERVERS 參數(shù)的 IP 地址和端口號后面多加了 “;2181 ”。(2)ZOO_SERVERS 指定ip時本機(jī)的ip地址寫 0.0.0.0。ZOO_MY_ID: 1ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181zoo2:image: zookeeperrestart: alwayshostname: zoo2container_name: zoo2privileged: trueports:- "2182:2181"volumes:- /mydata/zookeeper-cluster/zookeeper02/data:/data- /mydata/zookeeper-cluster/zookeeper02/datalog:/datalog- /mydata/zookeeper-cluster/zookeeper02/conf:/confenvironment:ZOO_MY_ID: 2ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181zoo3:image: zookeeperrestart: always hostname: zoo3container_name: zoo3privileged: trueports: - "2183:2181"volumes:- /mydata/zookeeper-cluster/zookeeper03/data:/data- /mydata/zookeeper-cluster/zookeeper03/datalog:/datalog- /mydata/zookeeper-cluster/zookeeper03/conf:/confenvironment:ZOO_MY_ID: 3ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
  • 運(yùn)行docker-compose.yml文件
  • docker-compose up -d
  • 停止集群
  • docker-compose down
  • 查看創(chuàng)建好的zookeeper集群
  • docker ps 或在docker-compose.yml文件所在目錄輸入 docker-compose ps

    Docker Compose

    簡介

    Docker Compose 定義、運(yùn)行、管理容器

    A docker-compose.yml looks like this:

    version: "3.8" services:web:build: .ports:- "5000:5000"volumes:- .:/code- logvolume01:/var/loglinks:- redisredis:image: redis volumes:logvolume01: {}

    Compose概念

  • 服務(wù)service,容器、應(yīng)用(web、Redis、MySQL…)
  • project(項目),一組關(guān)聯(lián)的容器
  • 安裝

  • 運(yùn)行安裝Compose
  • curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

  • 給docker-compose可執(zhí)行的權(quán)限
  • sudo chmod +x /usr/local/bin/docker-compose

  • 快速開始:https://docs.docker.com/compose/gettingstarted/
  • 總結(jié)

    以上是生活随笔為你收集整理的Docker笔记整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    日韩av一区二区在线 | 久久爽久久爽久久av东京爽 | 久久精品精品电影网 | 亚洲黄色高清 | 国产精品一区二区三区在线免费观看 | 一区二区三区免费在线 | a级免费观看 | 91手机视频在线 | 手机色站| 黄色网www | 免费大片av | 色永久免费视频 | 中文字幕乱码一区二区 | 成人全视频免费观看在线看 | 黄色免费网站下载 | 色婷婷在线播放 | 亚洲理论在线观看电影 | japanesefreesexvideo高潮 | 日本中文字幕在线视频 | 日韩在线免费高清视频 | 久久久久久免费毛片精品 | 久久大视频 | 中文字幕久久久精品 | 日韩欧美一区二区三区视频 | 亚洲午夜精品一区二区三区电影院 | 久久久久免费精品 | 97av在线视频免费播放 | 夜夜操天天摸 | 亚洲性视频 | 在线电影av| 色婷婷国产精品一区在线观看 | 美女免费视频观看网站 | 91免费观看国产 | 久草爱视频 | 欧美在线91 | 午夜18视频在线观看 | 日韩在线观看小视频 | 青春草视频在线播放 | 国产精品免费视频久久久 | 国产精品精品国产 | 欧美日本在线视频 | 精品久久久免费视频 | 国产免费高清 | 亚洲www天堂com| 日韩精选在线观看 | 亚洲女裸体 | 国产精品美女毛片真酒店 | a电影免费看 | 91亚色在线观看 | 激情狠狠干 | 日韩 在线观看 | 精品福利视频在线 | 极品嫩模被强到高潮呻吟91 | 免费日韩一级片 | 国产一区二区久久精品 | 激情综合网在线观看 | 精品国产1区 | 国产精品毛片久久久久久久久久99999999 | 亚洲 欧洲 国产 精品 | 国产激情电影综合在线看 | 国产剧情一区在线 | 欧美亚洲一区二区在线 | 高清av网| 欧美一区二区伦理片 | 91香蕉嫩草| 亚洲国产人午在线一二区 | av中文天堂 | 亚洲免费视频在线观看 | 九九电影在线 | 成人免费看黄 | 黄色三级免费观看 | 欧美最猛性xxxxx(亚洲精品) | 中文成人字幕 | 狠狠干网址 | 黄色www | 精品国产_亚洲人成在线 | 黄网站色成年免费观看 | www.国产在线 | 亚洲va综合va国产va中文 | 国产成本人视频在线观看 | 天天做夜夜做 | 特级西西444www高清大视频 | 亚洲另类在线视频 | 韩国在线一区二区 | 岛国大片免费视频 | 国产精品刺激对白麻豆99 | 天天躁日日躁狠狠躁av中文 | 日本超碰在线 | 四虎成人精品永久免费av | 美女免费视频一区 | 男女激情免费网站 | 国产在线视频资源 | 最近中文字幕mv免费高清在线 | japanesexxxhd奶水 国产一区二区在线免费观看 | 久久午夜鲁丝片 | 黄网站免费久久 | 精品字幕在线 | 激情综合亚洲精品 | 亚洲视频一级 | 四虎在线视频 | 国产高清日韩欧美 | 国产精品久久久久久久久久ktv | 精品久久99 | 久久精品视频99 | 国产日产精品一区二区三区四区 | 久久久久成 | 天天色天天操天天爽 | 激情综合色综合久久 | 欧美亚洲精品在线观看 | 久久国内精品 | 综合色综合 | 操操日| 天天干,夜夜爽 | 久久久精品电影 | 成人aaa毛片 | 国产精品一区在线播放 | 五月激情姐姐 | 国产专区在线视频 | 免费在线色视频 | 国内精品久久影院 | 国产黄色网| 美女黄频在线观看 | 国产精品专区在线 | 99亚洲国产| 婷婷综合伊人 | 国产亚洲一区二区在线观看 | 91xav| 国产福利免费在线观看 | 欧美激情第28页 | 99精品在线免费观看 | 天天天操操操 | 欧美激情奇米色 | 久久免费视频国产 | 国产精品99久久久久久小说 | 丁香六月天婷婷 | 九九久久婷婷 | 一级全黄毛片 | 日韩免费在线视频观看 | 亚洲精品美女免费 | 天天视频亚洲 | 婷婷丁香自拍 | 亚洲精品xxx | 久久99精品久久久久久久久久久久 | 欧美一区成人 | av在线一级 | 久久草av| www.一区二区三区 | 久草在线视频新 | 国产精品手机视频 | 人人澡人摸人人添学生av | 欧美性极品xxxx做受 | 亚洲激情六月 | 91精品一区在线观看 | 亚洲国产精久久久久久久 | 97狠狠操| 国产区欧美| 国产一区在线视频播放 | av在线看网站 | 久久你懂得| 超碰在线9 | 亚洲天堂网站 | 午夜久久影视 | 日韩久久精品一区二区 | 日日夜夜av | 亚洲 成人 一区 | 国产综合精品久久 | 天天干天天综合 | 国产123区在线观看 国产精品麻豆91 | 美女网站在线播放 | 韩国精品在线观看 | 色资源中文字幕 | 99国产精品一区 | 国产成人在线网站 | 五月婷婷综合在线观看 | 久久午夜免费视频 | 免费国产亚洲视频 | 欧美a级片网站 | 91热这里只有精品 | 在线观看免费高清视频大全追剧 | 五月婷婷综合网 | 成人蜜桃 | 亚洲成人av在线播放 | 亚洲精品99 | 狠狠狠狠干| 亚洲永久av | av在线a| 国产一区二区免费在线观看 | 国产精品美女免费视频 | 人人干狠狠干 | 亚洲国产精品久久久 | 日韩91在线 | 九月婷婷人人澡人人添人人爽 | 高清不卡一区二区在线 | 在线韩国电影免费观影完整版 | 久久久久久久久久久久av | 在线国产高清 | 伊人久久国产 | 精品亚洲视频在线观看 | 免费下载高清毛片 | 午夜三级福利 | 狠狠狠狠狠狠天天爱 | 青草视频在线免费 | 黄色a视频 | 天堂素人在线 | 欧美日韩国产精品久久 | 欧美日韩精品在线视频 | 欧美aaaxxxx做受视频 | 国产一区成人 | av成人动漫在线观看 | 久久成人资源 | 久久精品一区二区 | 国产精品男女视频 | 91人人射 | 亚洲日本激情 | 丝袜一区在线 | 欧美日韩精品区 | 最近中文字幕在线中文高清版 | 四虎最新入口 | 91污在线 | 中文一区在线 | 国产69精品久久久久久久久久 | 国产成人av一区二区三区在线观看 | www天天干com| 成人av在线影院 | 国产一二三区在线观看 | 久久免费国产电影 | 日韩在线视频二区 | www.久久免费| 亚洲视频在线免费观看 | 国产一区二区三区 在线 | 天天曰天天 | 天天操比 | 91免费视频黄 | 欧美极度另类 | 国产精品美女久久久 | 国产在线久草 | 亚洲美女精品 | 免费av在线| 精品国产精品久久一区免费式 | 国偷自产中文字幕亚洲手机在线 | 免费网站色 | 日本女人的性生活视频 | 伊人久在线 | 九九在线视频免费观看 | 国产成人99av超碰超爽 | 少妇bbbb揉bbbb日本 | 992tv人人网tv亚洲精品 | 亚洲日韩中文字幕在线播放 | 成人毛片一区 | 狠狠色丁香婷婷综合 | 一区二区三区三区在线 | av一级网站 | 国产精品不卡在线 | 在线免费视 | 免费国产一区二区视频 | japanesexxx乱女另类 | 国模吧一区| 在线观看日本高清mv视频 | 婷婷激情在线 | 欧美性猛片, | 夜色资源站wwwcom | 日韩在线短视频 | 中文字幕视频网站 | 欧美日韩精品在线 | 欧美精品久久 | 3d黄动漫免费看 | 久久久免费网站 | 99精品国产免费久久久久久下载 | 精品国产一区二区三区四 | 国产成人香蕉 | 色噜噜狠狠狠狠色综合 | 亚洲最新av在线网址 | 99久久99热这里只有精品 | 一区二区三区中文字幕在线观看 | 成人久久18免费网站 | 久久精品这里都是精品 | av一区二区在线观看中文字幕 | 四月婷婷在线观看 | 国产一区二区不卡视频 | 久99久视频 | 亚洲午夜久久久综合37日本 | 国产免费观看视频 | 日本黄色免费在线 | 亚洲自拍偷拍色图 | 婷婷综合久久 | 97超碰人人澡人人爱 | 精品久久久久久国产 | 精品 激情 | 国产午夜在线观看 | 日韩在线视频精品 | 日韩一区精品 | 久久综合之合合综合久久 | 午夜精品一二区 | 国产99一区二区 | 麻花豆传媒mv在线观看 | 99热9| 欧美性色综合网站 | 91亚洲视频在线观看 | 青春草免费在线视频 | 久久久这里有精品 | 亚洲在线视频免费 | 免费看片亚洲 | 国产 日韩 欧美 在线 | 一区二区三区福利 | 黄色在线观看污 | 五月天色综合 | 国产在线小视频 | 国产一区二区三区 在线 | 欧美日韩高清一区二区 | 特级免费毛片 | 久久久美女 | 国产成人精品一二三区 | 亚洲午夜久久久久 | 精品1区2区 | 911香蕉视频 | 国产在线观看免费 | 亚洲污视频| 日本视频精品 | 日韩av在线高清 | 亚色视频在线观看 | 日韩久久精品一区 | 日韩在线观看中文字幕 | 国产精品久久电影网 | 国产精品av免费在线观看 | 色狠狠狠 | 国产xxxx性hd极品 | 日本3级在线观看 | 麻豆传媒视频在线免费观看 | 国产精品久久久久久一区二区三区 | 久久久久久网站 | 精品国产成人在线 | 久久人人爽人人爽人人片av免费 | 懂色av懂色av粉嫩av分享吧 | 性色av免费在线观看 | 欧美一级性生活视频 | 成人av影院在线观看 | 日韩在线观看精品 | 69国产精品视频 | 8090yy亚洲精品久久 | 欧美人交a欧美精品 | 亚洲va韩国va欧美va精四季 | 91片网| 亚洲精品视频偷拍 | 9999亚洲 | 天堂av观看| 最新av网址大全 | 亚洲成人资源在线观看 | 一区在线观看 | 91亚洲精品乱码久久久久久蜜桃 | 91精品久久久久 | av丁香| 欧美日韩3p | 久久综合狠狠综合久久综合88 | 91pony九色丨交换 | 久久激情电影 | 久久最新 | 97视频免费在线观看 | www免费视频com| 国产成人精品一区二区三区 | 在线观看亚洲精品 | 91一区啪爱嗯打偷拍欧美 | 日本不卡一区二区 | 成人午夜电影免费在线观看 | 欧美高清视频不卡网 | 日韩在线观看一区二区三区 | 日本久久免费电影 | 日韩另类在线 | 免费日韩 精品中文字幕视频在线 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久久人人爽人人片av | 97电影在线观看 | 精品久久久久久综合 | 在线看片视频 | 色综合网| 九九热精品国产 | 综合伊人久久 | 色天天久久 | 久草香蕉在线 | 久久久久女人精品毛片九一 | av韩国在线 | 国产精品涩涩屋www在线观看 | 波多野结衣精品在线 | 亚洲精品美女久久久久 | 亚洲在线激情 | 久久综合狠狠综合久久综合88 | 97超碰资源| 999久久久国产精品 高清av免费观看 | 国产午夜在线观看视频 | 麻豆免费精品视频 | 亚洲精品在线视频播放 | 亚洲男人天堂2018 | 国产群p | 久久国产精品99国产 | 91av视频免费在线观看 | 国产精品福利无圣光在线一区 | 亚洲精品一区二区三区在线观看 | 成人黄色片免费看 | 欧美日韩国产在线 | 97电影网手机版 | 激情视频一区二区三区 | 成人高清av在线 | 欧美国产在线看 | 免费碰碰 | 久久亚洲综合国产精品99麻豆的功能介绍 | av高清影院 | 成人av免费在线播放 | 久久精品99久久 | av在线网站免费观看 | 97超碰影视| 免费人做人爱www的视 | 久久综合色综合88 | 国产香蕉久久精品综合网 | 五月天婷婷视频 | 永久免费的啪啪网站免费观看浪潮 | 三级黄色大片在线观看 | 最新影院 | 亚洲综合小说 | 亚洲1区在线 | 日韩在线一区二区免费 | 国产精品乱码一区二三区 | 午夜的福利 | 欧美日韩国产二区三区 | 亚洲成年人在线播放 | 毛片在线播放网址 | 亚洲精品国 | 免费看一级黄色大全 | 一区二区精品视频 | 麻豆91网站 | 久久精视频 | 国产成人精品av在线观 | 97超碰人人网 | 久久中文字幕在线视频 | 日韩精品电影在线播放 | 在线看成人av | 久久久香蕉视频 | 午夜在线看片 | 337p日本大胆噜噜噜噜 | 日本久久视频 | 久久国产精品系列 | 亚洲综合在线发布 | 中文字幕激情 | 日韩影视在线观看 | 一级淫片在线观看 | 久久精品五月 | 91精品国产综合久久福利 | 日韩欧美99| 欧美精品天堂 | av成人动漫在线观看 | 国产精品激情在线观看 | 五月婷婷深开心 | 国产亚洲视频中文字幕视频 | 黄色片软件网站 | 九色福利视频 | 国产探花在线看 | 国产成在线观看免费视频 | 国产1区2 | 久久久精品久久日韩一区综合 | 国产高清精| 欧美一级免费在线 | 欧美一级小视频 | 久久久999| 成年人电影免费看 | 麻豆系列在线观看 | 日本精品久久久久 | 免费看污片| 中文资源在线官网 | 色欧美88888久久久久久影院 | 欧美精品在线一区 | 中文字幕永久在线 | 亚洲人久久久 | 91mv.cool在线观看 | 91色偷偷| 天天操天天干天天 | 国产亚洲va综合人人澡精品 | 日韩免 | 日韩黄在线观看 | 国产精品久久久久久久久久99 | 免费在线一区二区 | 黄色免费网站 | 国产色中涩| 国产精品永久在线观看 | 国产精品久久一区二区三区不卡 | 一级黄视频| 日日操日日插 | 99久久精 | 草草草影院 | 欧美中文字幕第一页 | 五月天婷婷综合 | 少妇按摩av| 欧美激情一区不卡 | 中文字幕一区二区三区四区视频 | 国产99久久久精品 | 国产91精品一区二区绿帽 | 国产福利一区二区三区视频 | 色综合亚洲精品激情狠狠 | 97视频免费在线观看 | avsex| 五月婷av | 五月婷亚洲 | 欧美日本三级 | 精品中文字幕在线观看 | 91人网站 | 国产性xxxx | 蜜臀av夜夜澡人人爽人人 | 成人91在线 | 国产黄色免费电影 | 国产经典 欧美精品 | 欧美国产高清 | 亚洲涩涩色 | 五月婷影院 | 国产精品久久久久永久免费观看 | 有码中文字幕 | 欧美,日韩| 毛片基地黄久久久久久天堂 | 久久网页 | 午夜精品久久久久久久久久久久 | 国产精品一区二区美女视频免费看 | 久久久91精品国产一区二区三区 | 国产精品9999久久久久仙踪林 | 99国产一区| 色a网| 国产精品九九热 | 久99久视频| 国产精品一区二区62 | 午夜av电影院 | 成人av网站在线播放 | 日本在线视频一区二区三区 | 欧美巨乳网| 国产精品6 | 天天操操操操操操 | 亚洲开心色 | 天天夜夜狠狠操 | 国产精品 日韩精品 | 欧美日韩免费一区二区 | av综合在线观看 | 欧美狠狠色 | 在线免费高清一区二区三区 | 精品一区二区电影 | 国产亚洲永久域名 | 一区二区在线电影 | 2023国产精品自产拍在线观看 | 午夜在线观看一区 | 91欧美国产| 成人影视免费看 | 久99久在线 | 国产第一页在线观看 | 在线黄色国产电影 | 亚洲国产精品va在线 | 免费看av在线| 久久国精品 | 天天综合视频在线观看 | 人人插人人舔 | 国产色婷婷精品综合在线手机播放 | www.黄色片.com | 免费观看黄 | 一区二区三区在线免费观看视频 | 日韩av中文| 亚洲精品美女视频 | 91精品黄色| 日本三级在线观看中文字 | 国产亚洲精品久久久久久 | 国产精品欧美 | 国产成视频在线观看 | 夜夜干夜夜 | 操操色| av福利超碰网站 | 青青草国产免费 | a级成人毛片 | 国产精品自拍av | 六月激情网 | 天天干夜夜操视频 | 五月婷婷激情五月 | 国产裸体bbb视频 | 久久伊人综合 | 欧美国产日韩久久 | 久久精品久久精品 | 丁香六月婷婷开心 | 91精品一区国产高清在线gif | 开心激情综合网 | 久久亚洲欧美 | 江苏妇搡bbbb搡bbbb | 日韩免费一区二区 | 97碰在线视频 | 色综合久久久久综合体桃花网 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 九九久| 国产一区二区三区网站 | 亚洲欧美国产精品18p | 国产天天综合 | 日本激情视频中文字幕 | 免费日韩一区二区三区 | 久久国产精品第一页 | 国产一区在线观看视频 | 国产一区国产精品 | 最新精品视频在线 | 不卡电影一区二区三区 | 成人网在线免费视频 | 免费黄色av. | 国产一级视频在线 | 97爱| 久久久久久久久久网站 | 九九色视频 | 精品国产1区2区3区 国产欧美精品在线观看 | 成人精品久久 | 91成人在线免费观看 | 欧美一级专区免费大片 | 欧美一区二区在线免费看 | 天天干天天操天天操 | 日韩av一区在线观看 | 国产精品福利av | 精品国产一区二区三区av性色 | 国产 中文 日韩 欧美 | 午夜精品99久久免费 | 黄色成人影视 | 欧美大片www | 色欧美成人精品a∨在线观看 | 精品国产人成亚洲区 | 欧美国产日韩一区二区 | 久久精品福利 | 国产一级二级av | 国产尤物在线 | 在线色网站 | 日本久久不卡视频 | 992tv人人草 黄色国产区 | 亚洲黄色软件 | 久久久国产影视 | 日日天天干 | 一级成人免费 | 九九热99视频 | 国产精品午夜久久 | 午夜精品久久久久久久99 | 91色吧| 日韩精品视频久久 | 色综合 久久精品 | 人人看人人草 | 久久精品影视 | 午夜神马福利 | 91精品国产亚洲 | 91麻豆精品国产91久久久更新时间 | 欧美日韩免费看 | 黄色片网站大全 | 久久综合免费视频影院 | 久久免费视频4 | 久久福利精品 | 最新av免费在线观看 | 在线观看一级视频 | 久久大视频 | 97视频网站 | 在线视频观看你懂的 | av视屏在线| www视频在线免费观看 | av高清网站在线观看 | 国产综合香蕉五月婷在线 | 成人毛片100免费观看 | 亚洲欧美日韩精品久久久 | 久久99久久99免费视频 | 青青草国产精品视频 | 亚洲五月 | 中文字幕免费高 | 亚洲成人免费在线观看 | 久久免费成人 | 超碰国产在线 | 国产精品九色 | 国产做a爱一级久久 | 99精品观看| 成人av久久 | 国产免码va在线观看免费 | 操操爽 | 国产精品av电影 | 亚洲mv大片欧洲mv大片免费 | 91免费高清观看 | 国产精品久久久久婷婷 | 欧美视频在线观看免费网址 | 黄色国产高清 | 欧美精品亚洲二区 | 国产日韩欧美在线看 | 久久五月婷婷综合 | 亚洲成av人片在线观看香蕉 | 日本爱爱免费视频 | 国产日产高清dvd碟片 | 激情网在线观看 | 五月天久久综合网 | 久久国产精品视频观看 | 亚洲一区 av | 久久精品一区二区三区中文字幕 | 亚洲国产成人精品在线 | 精品嫩模福利一区二区蜜臀 | 日本久久精 | 国产精品美女在线观看 | 国产精品小视频网站 | 日韩久久久久久久 | 992tv人人草 黄色国产区 | 国产精品国产毛片 | 欧美 日韩精品 | 一二三区av | 中文字幕在线看 | 亚洲国产欧美在线人成大黄瓜 | 黄色免费观看网址 | 久久69精品久久久久久久电影好 | 欧美日韩亚洲在线观看 | 亚洲aⅴ一区二区三区 | 2019天天干天天色 | 日本久久电影网 | 亚洲少妇xxxx| 亚洲国产精品影院 | 久久综合9988久久爱 | 亚洲伊人网在线观看 | 国产香蕉97碰碰久久人人 | 天天天操天天天干 | 狠狠色丁香久久婷婷综 | 激情综合色图 | 二区视频在线观看 | 成人午夜黄色 | 欧洲一区二区在线观看 | 久久精品国产免费 | 视频在线播放国产 | 天天操天天干天天干 | 视频在线观看91 | 色999精品 | 日韩激情在线视频 | 国产视频每日更新 | 在线蜜桃视频 | 国产精品第三页 | 久草在线播放视频 | 亚洲国产精品va在线看 | 日韩影视在线 | 国产精品第一视频 | 成人黄色免费在线观看 | 韩国一区在线 | 久久久国产精品视频 | 国产成人一区二区在线观看 | 四虎永久网站 | 黄色免费视频在线观看 | 成年人在线电影 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 久久成年人网站 | 国产精品免费久久久久久久久久中文 | 久久久久久久久久久久久久电影 | 国产精品毛片一区视频 | 91手机视频在线 | 亚洲好视频| www.亚洲精品 | 国产涩涩网站 | 亚洲激情在线观看 | 日日夜操| 嫩草av影院 | 九九热精品视频在线播放 | 色综合天天色综合 | 91在线小视频 | 天天操天天射天天 | 国产亚洲精品久久久久久 | 精品国产1区 | 九九视频精品在线 | 五月婷在线播放 | 亚洲夜夜综合 | 亚洲精品乱码久久久久久写真 | 精品美女久久久久久免费 | 区一区二在线 | 日本中文字幕电影在线免费观看 | 日韩毛片在线一区二区毛片 | 亚洲 欧美 综合 在线 精品 | 国产精品亚州 | 久久不射网站 | 亚洲a免费 | 久久久午夜电影 | 国产高清福利在线 | 日日爽天天爽 | 天天激情站 | 九九热免费在线观看 | 日本精品免费看 | 国产精品综合久久久久久 | 国产精品高潮呻吟久久av无 | 欧美成人中文字幕 | 天堂网一区二区 | 一区二区视频电影在线观看 | 亚洲色图美腿丝袜 | 色婷婷午夜 | 成人av免费播放 | 国产精品久久久久久久久软件 | 在线观看亚洲精品 | 午夜视频在线观看一区二区三区 | 少妇视频一区 | 日本三级中文字幕在线观看 | 亚洲理论片在线观看 | 黄色在线观看免费网站 | 麻豆国产精品永久免费视频 | 婷色| 日本中文字幕久久 | 亚洲精品久久久久中文字幕二区 | 免费看三级 | 国产精品免费观看国产网曝瓜 | 久久久久99精品成人片三人毛片 | 婷婷综合影院 | 亚洲尺码电影av久久 | 久久久婷| 久久伊人操 | 久草在线视频精品 | 毛片精品免费在线观看 | 亚洲一区二区麻豆 | 狠狠操操操 | 国产不卡免费视频 | 91亚洲在线 | 黄色精品国产 | 伊人五月天 | 黄色www| 日本护士三级少妇三级999 | www.看片网站 | 久久国产三级 | 免费亚洲婷婷 | 成人午夜影院在线观看 | 日韩欧美不卡 | 久久久久久国产精品美女 | 欧美精品久久久久久久免费 | 有码中文字幕 | 日韩高清精品一区二区 | 九九影视理伦片 | 欧美另类网站 | 欧美精品在线观看免费 | 日韩精品专区在线影院重磅 | 亚洲精品玖玖玖av在线看 | 99久久久免费视频 | 欧美日韩不卡一区二区三区 | 99国产在线 | 欧美激情综合五月色丁香小说 | 美女网站在线看 | 天天操网址| 午夜.dj高清免费观看视频 | 国产永久免费高清在线观看视频 | 99精品视频中文字幕 | 超碰在线97观看 | 国产精品乱码久久久久 | 欧美激情另类 | 麻豆高清免费国产一区 | 免费观看性生交大片3 | 日韩精品一区二区免费视频 | 中文字幕一区二区在线观看 | 在线观看的av | www.夜色.com | 亚洲精品视频中文字幕 | 欧美一级电影 | 丁香六月婷婷激情 | 日韩在线视 | 日韩在线精品一区 | 久久久久久福利 | 91视频在线看 | 在线亚洲精品 | 97精品国产97久久久久久粉红 | 国产xxxxx在线观看 | av丁香| 在线看日韩| 午夜影视一区 | 免费国产在线精品 | 天天色天 | 东方av在线免费观看 | 久久国产香蕉视频 | 成人久久 | 狠狠的日日 | 亚洲午夜精品一区二区三区电影院 | 黄免费在线观看 | www.香蕉| 午夜丁香网 | 99精品福利 | av一级片 | 国产原创在线视频 | 午夜在线观看影院 | 九草视频在线观看 | 国产精品一区二区三区在线免费观看 | 国产在线中文 | 开心激情五月婷婷 | 国产99久久九九精品免费 | 综合久久综合久久 | 日日狠狠 | 久久r精品 | 中文字幕人成不卡一区 | 精品黄色视 | 麻豆视频免费在线 | 精品久久久久久久久久久久久久久久 | 国产黄色视 | 国产精品video爽爽爽爽 | 精品国产一区二区三区久久久 | 日韩av高清在线观看 | 天天射日 | 国产精品国产三级国产aⅴ无密码 | 欧美疯狂性受xxxxx另类 | 字幕网资源站中文字幕 | 在线看国产一区 | 九九热久久免费视频 | 成人高清在线观看 | 免费a视频在线 | 激情视频一区二区三区 | 久久婷婷视频 | 久久久久久电影 | 国产成人久久精品一区二区三区 | 日韩免费视频观看 | 麻豆免费看片 | 久久久国产精品一区二区三区 | 亚洲精品视频免费在线 | 成人av片在线观看 | 久久久久久久久久久黄色 | 97色se| 伊人婷婷色 | 久精品一区 | 久久精品99国产精品 | 国产成视频在线观看 | 日本中文字幕免费观看 | 久久久高清一区二区三区 | 91精品第一页 | 99热在线免费观看 | 亚洲网站在线看 | 18女毛片 | 久久伊99综合婷婷久久伊 | 国产精品ssss在线亚洲 | 国产精品黄色在线观看 | 一区二区三区高清在线观看 | 免费福利片 | 亚洲首页| 国产精品久久久久久久久久久免费看 | 天天综合天天做天天综合 | 色婷婷骚婷婷 | 亚洲精品国产精品久久99 | 色97在线 | 狠狠插天天干 | 日韩免费观看一区二区 | 日韩sese| 国产精品高清av | a级国产乱理伦片在线观看 亚洲3级 | 午夜久久久久久久久 | 日韩高清www| 国产成人一级 | 国产精品久久久久永久免费观看 | 人人爽人人澡 | 欧美日韩国产精品爽爽 | 日韩毛片在线一区二区毛片 | 久久综合久久鬼 | 日本91在线 | 午夜狠狠操 | 国产成人精品亚洲日本在线观看 | 日韩欧美国产精品 | 天天搞天天干天天色 | 久久国精品 | 成在线播放 | 国产日本亚洲高清 | 91精品福利在线 | 亚洲午夜av电影 | 国产99久久九九精品 | 有没有在线观看av | 在线一区二区三区 | 91av国产视频 | 日韩一区视频在线 | 黄色毛片视频 | 日韩av偷拍 | 99热国内精品 | 日韩亚洲在线 | 麻豆视频国产在线观看 | av电影在线免费 | 国产精品岛国久久久久久久久红粉 | 久久精彩 | 精品一区二区在线观看 | 天天搞天天干 | 日韩久久久| 99久久99久久免费精品蜜臀 | 人人看人人草 | 日韩精品久久一区二区 | 激情五月六月婷婷 | 91天堂影院 | 性色av免费看 | 黄网站污 | 精品福利视频在线观看 | 99热九九这里只有精品10 | 丁香六月婷 | 欧美精品一区在线发布 | 午夜在线免费视频 | 超碰人人草 | 欧洲精品码一区二区三区免费看 | 国产精品12| 久久久久国产精品一区二区 | 97国产在线观看 | 狠狠躁夜夜躁人人爽视频 | 激情综合五月天 | 成年在线观看 | 国产精品男女视频 | 激情视频免费在线 | 五月婷婷六月丁香在线观看 | 欧美日韩久久不卡 | 亚洲精品网址在线观看 | 色综合久久88色综合天天人守婷 | 日韩高清一二区 | 操操综合网 | 欧美一级免费 | 日韩中文字幕免费在线播放 | 国产成人高清 | 99国产精品久久久久老师 | 日本久久综合视频 | 毛片基地黄久久久久久天堂 | 天天操夜夜操国产精品 | 亚洲性少妇性猛交wwww乱大交 | 日韩精品在线观看视频 | 五月婷久久 |