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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Docker | Docker技术基础梳理(五) - Docker网络管理

發(fā)布時間:2023/11/27 生活经验 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker | Docker技术基础梳理(五) - Docker网络管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Docker | Docker技術基礎梳理(五) - Docker網(wǎng)絡管理

鏈接:
原文鏈接

原文鏈接:

https://gitbook.cn/books/5b8f3c471966b44b00d26541/index.html

一、Docker 鏡像相關概念深入
1.1 鏡像

鏡像是一種輕量級、可執(zhí)行的獨立軟件包,用來打包軟件運行環(huán)境和基于運行環(huán)境開發(fā)的軟件,它包含運行某個應用所需的所有內容,包括代碼、庫、環(huán)境變量和配置文件
1.2 基礎鏡像(scratch)

基礎鏡像簡單來說就是不依賴其他鏡像,完全從 0 開始構建,其他鏡像是在其基礎上進行構建的。

Docker Hub 中 99 % 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構建出來的。

簡單理解有兩層含義:

不依賴其他鏡像,從 scrach 構建。其他鏡像可以以他為基礎進行擴展構建。

所以,能成為 base 鏡像的通常是各種 Linux 發(fā)行版的 Docker 鏡像,比如 Ubuntu、CentOS 等。
1.3 修改基礎鏡像疑問

正因為多個容器共享同一個基礎 base 鏡像,假如,我們某一個容器修改了基礎鏡像的某個文件,比如 /etc 下的某個配置,那么會不會影響其他鏡像呢?

答案是當然不會的,修改會被限制在當前容器內,在上一篇也提到過,多個容器之間是相互隔離、保證安全的,也就是在下面要提到的 Copy-on-Write 特性。
1.3 UnionFS 聯(lián)合文件系統(tǒng)

Union 文件系統(tǒng) ( UnionFS ) 是一種分層、輕量級并且高性能的文件系統(tǒng),它支持對文件系統(tǒng)的修改作為一次提交來一層層的疊加。

同時,可以將不同目錄掛載到同一個虛擬文件系統(tǒng)下( unite serveral directories into a single virtual filesystem )。

聯(lián)合文件系統(tǒng)是 Docker 鏡像的基礎。鏡像可以通過分層來進行繼承,基于基礎 base 鏡像(無父鏡像),可以制作各種具體的應用鏡像。

不同的 docker 容器可以共享一些基礎的文件系統(tǒng)層,再加上自己獨有的改動層,大大提高了存儲效率。

特點:一次同時加載多個文件系統(tǒng),但從外面看起來,只能看到一個文件系統(tǒng),聯(lián)合加載會把各層文件系統(tǒng)疊加起來,這樣最終的文件系統(tǒng)會包含所有底層的文件和目錄。
二、Docker 鏡像分層原理及特點
2.1 分層引入

當通過 docker 下載鏡像時,比如 docker pull mongo 發(fā)現(xiàn)會下載多個文件,其實這一個個文件就是該鏡像的一層。

通過如下命令可以查看鏡像的分層信息:

docker history container-id

示例:

enter image description here
2.2 鏡像疊加過程

鏡像可以分多層,每一層都有自己的 ID 和大小信息。新鏡像都是從 base 鏡像一層層疊加生成的,每安裝一個軟件就在現(xiàn)有鏡像基礎上疊加一層。

鏡像疊加過程如下:

enter image description here
2.3 AnotherUnionFS

Docker中 的 AUFS(AnotherUnionFS) 就是一種聯(lián)合文件系統(tǒng)。AUFS 支持為每一個成員目錄(類似 git 分支)設定為只讀、讀寫和寫出權限,同時 AUFS 里有一個類似分層的概念,對只讀權限的分支可以邏輯上進行增量的修改,并且不影響只讀部分。

簡單理解就是已構建的鏡像會設置成只讀層,read-write 寫操作是在 read-only 上的一種增量操作,所以不會影響到 read-only 層。

Docker 目前支持的聯(lián)合文件系統(tǒng)種類包括 AUFS,btrfs,vfs 和 DeviceMapper。
2.4 bootfs 與 rootfs

bootfs:在 Docker 鏡像的最底層就是 bootfs,這一層與典型的 Linux/Unix 系統(tǒng)是一樣的,主要包含 boot 加載器和 kernel 內核,bootloader主要是引導加載 kernel,Linux 剛啟動時會加載 bootfs 文件系統(tǒng)。當 boot 加載完成后整個內存就都在內存中了,此時內存的使用權已有 bootfs 交給內核,系統(tǒng)也會在此時卸載 bootfs。rootfs:Docker 在 bootfs 之上的一層是 rootfs(根文件系統(tǒng)),包含的就是典型 Linux 系統(tǒng)中的 /dev,/proc,/bin,/etc 等標準目錄和文件。rootfs 就是各種不同的操作系統(tǒng)發(fā)行版,比如 Ubuntu,CentOS 等。

enter image description here
2.5 Docker 的 rootfs 與傳統(tǒng) Linux 的 rootfs 對比

傳統(tǒng)的 Linux 加載 bootfs 時會先將 rootfs 設置成 read-only,然后在系統(tǒng)自檢之后將 rootfs 從 read-only 改為 read-write。這樣就可以在 rootfs 上進行讀寫操作了。Docker 鏡像開始也把 rootfs 設置成 read-only,但在 bootfs 自檢完畢后,并不會把 rootfs 的 read-only 改為 read-write,而是利用 union amount(UnionFS 的一種掛載機制)將一個 read-write 文件系統(tǒng)掛載在 read-only 的 rootfs 之上,并且運行再次將下層的文件系統(tǒng)設定為 read-only 并向上疊加,這樣一組 read-only 和一個 read-write 的結構構成一個 container 的運行目錄,每一個被稱為一個 layer,如下圖所示:

enter image description here

也就是說,當鏡像被啟動實例化成容器后,系統(tǒng)會為在一層或多層的 read-only 的 rootfs 之上分配一層空的 read-write 的 rootfs 容器層,這個分配動作是由 docker run 發(fā)起的。

2.6 深入容器細節(jié)

Docker 守護進程會在 Docker 鏡像的最上層之上,再添加一個可讀寫層,容器所有的寫操作都會作用到這一層中。而如果 Docker 容器需要寫底層 Docker 鏡像中的文件,那么此時就會涉及 Copy-on-Write 的機制,即 aufs 等聯(lián)合文件系統(tǒng)保證:首先將此文件從 Docker 鏡像層中拷貝至最上層的可讀寫層,然后容器進程再對讀寫層中的副本進行寫操縱。對于容器進程來講,它只能看到最上層的文件。所有對容器的改動,無論添加、刪除、還是修改文件都只會發(fā)生在容器層中。只有容器層是可寫的,容器層下面的所有鏡像層都是只讀的。鏡像層數(shù)量可能會很多,所有鏡像層會聯(lián)合在一起組成一個統(tǒng)一的文件系統(tǒng)。如果不同層中有一個相同路徑的文件,比如 /a,上層的 /a會覆蓋下層的 /a,也就是說用戶只能訪問到上層中的文件 /a。在容器層中,用戶看到的是一個疊加之后的文件系統(tǒng)。

下面分別以增刪改讀文件為例,詳細說:

添加文件:在容器中創(chuàng)建文件時,新文件被添加到容器層中。讀取文件:在容器中讀取某個文件時,Docker 會從上往下依次在各鏡像層中查找此文件。一旦找到,立即將其復制到容器層,然后打開并讀入內存。修改文件:在容器中修改已存在的文件時,Docker 會從上往下依次在各鏡像層中查找此文件。一旦找到,立即將其復制到容器層,然后修改。刪除文件:在容器中刪除文件時,Docker 也是從上往下依次在鏡像層中查找此文件。找到后,會在容器層中記錄下此刪除操作。只有當需要修改時才復制一份數(shù)據(jù),這種特性被稱作 Copy-on-Write。可見,容器層保存的是鏡像變化的部分,不會對鏡像本身進行任何修改。

這樣就解釋了我們前面提出的問題:容器層記錄對鏡像的修改,所有鏡像層都是只讀的,不會被容器修改,所以鏡像可以被多個容器共享。
2.7 鏡像分層好處

最大好處就是共享資源,比如多個鏡像都是從相同的 base 鏡像構建而來,那么 Docker Host 只需要在磁盤上保留一份 base 鏡像,同時在內存中也加載一份 base 鏡像,就可以為所有容器服務了,并且每一層鏡像都是可共享的。

2.8 CentOS 與 Tomcat 鏡像大小對比

enter image description here

通過上圖,可以看出,centos 鏡像大小只有 200MB,而 Tomcat 鏡像大小為 463M,這明顯和我們潛意識中的常識不符吧,正常來講 centos 至少也得 2 G,而 Tomcat 最多也就是 15MB 而已。那這是為什么呢?

對于 centos 鏡像來說,底層直接用 Host 的 kernel,自動提供 rootfs 就行了,而對于一個精簡的 OS,rootfs 可以很小,只需要包括最基本的命令、工具和程序庫就可以了。平時安裝的 centos 除了 rootfs 外,還回選裝很多軟件、服務和圖形桌面等,需要好幾個 GB 也就不足為奇了。而通過查看 Tomcat 的鏡像層,發(fā)現(xiàn)除了 tomcat 應用外,還會有 kernel、rootfs、jdk 等各種信息,所以它比 centos 鏡像大也是正常的。

2.9 Docker 鏡像特點 – Copy-on-Write

Docker 鏡像都是只讀的當容器啟動時,一個新的可寫層被加載到鏡像的頂部,這一層通常稱為容器層,容器層之下都成為鏡像層新數(shù)據(jù)會直接存放在最上面的容器層修改現(xiàn)有數(shù)據(jù)會先從鏡像層將數(shù)據(jù)拷貝到容器層,修改后的數(shù)據(jù)直接保存在容器層,鏡像層保持不變如果多個層中有命名相同的文件,用戶只能看到最上面那層中的文件打個比方,如果想修改一個文件,系統(tǒng)實際上是將這個在 read-only 層的 rootfs 的文件拷貝到 read-write 層的 rootfs 之中,然后對它進行修改,但 read-only 層的文件并不會被修改,依然存在于 read-only 層之中,只不過是在 read-write 層下被隱藏了。這種模式被稱為 copy on write。也是 unionFS 的特性和 docker 的強大之處。這樣就允許鏡像被繼承,也就是說我們想生成一套虛擬環(huán)境不用從零開始了,而只要在一個相對完善的基礎環(huán)境之上來創(chuàng)建我們的虛擬環(huán)境就可以了,比如我們想生成一個具有 tomcat 環(huán)境的鏡像,只要在一個裝有 java 環(huán)境的鏡像之上來創(chuàng)建就可以了。這也是 docker 便捷性的體現(xiàn)。

三、Docker 容器數(shù)據(jù)卷
3.1 引入

先來看一下 Docker 的理念:

將應用與運行的環(huán)境打包形成容器運行,運行可以伴隨容器,但我們對數(shù)據(jù)的要求是希望可以持久化的容器之間希望有可能共享數(shù)據(jù)

Docker 產(chǎn)生的數(shù)據(jù),如果不通過 docker commit 生成新的鏡像,使得數(shù)據(jù)作為鏡像的一部分保存下來,那么當容器刪除后,數(shù)據(jù)自然也就消失了。

為了保存數(shù)據(jù)在 Docker 中,我們使用卷,這個有點類似 Redis 中的 rdb 和 aof 文件。
3.2 概念

卷就是目錄或文件,存在于一個或多個容器中,由 Docker 掛載到容器,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過 Union File System 提供的一些用于持續(xù)存儲或共享數(shù)據(jù)的特性。

卷的設計目的就是數(shù)據(jù)的持久化,完全獨立于容器的生命周期,因此 Docker 不會在容器刪除時,刪除其掛載的數(shù)據(jù)卷。

容器卷也可以完成主機到容器、容器到主機的數(shù)據(jù)共享,類似 cp 命令。
3.3 特點

數(shù)據(jù)卷可以在容器之間共享或重用數(shù)據(jù)卷中的更改可以直接生效數(shù)據(jù)卷中的更改不會包含在鏡像的更新中數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止

3.4 數(shù)據(jù)卷添加
3.4.1 直接命令添加

A. 命令

添加卷命令為:

docker run -it -v 宿主機目錄:容器目錄 鏡像名

eg. docker run -it -v /myDataVolume:/dataVolumeContainer centos 當執(zhí)行網(wǎng)上述命令后,會分別在宿主機和容器根目錄下新建 myDataVolume 和 dataVolumeContainer 兩個文件夾

B. 查看數(shù)據(jù)卷是否掛載成功

查看數(shù)據(jù)卷是否添加成功:

通過查看對應的目錄是否生成通過docker inspect image-id查看

如下為通過第二種方式查看,截取的幾個關鍵信息:

“HostConfig”: {
“Binds”: [
“/myDataVolume:/dataVolumeContainer”
],

}
“Mounts”: [
{
“Type”: “bind”,
“Source”: “/myDataVolume”,
“Destination”: “/dataVolumeContainer”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
}
]

]

C. 容器和宿主機之間數(shù)據(jù)共享

在宿主機 myDataVolume 文件夾中新建內容為 hello 的 host.txt 文件在容器的 dataVolumeContainer 文件夾中查看文件列表,發(fā)現(xiàn)已經(jīng)同步到宿主機的 host.txt 文件在容器的 dataVolumeContainer 文件夾中新建內容為 happ birthday 的 container.txt 文件,并在 host.txt 文件中新增 world 字符串在宿主機 myDataVolume 文件夾中查看文件及內容

最終數(shù)據(jù)如下:

enter image description here

D. 容器停止退出后,主機修改后是否同步

在容器通過 exit 或宿主機通過 docker stop 停止容器在宿主機 myDataVolume 文件夾中新建內容為 this is on container stop file 的 host02.txt在宿主機通過 docker start container-id 啟動容器通過 docker exec -it contain-id 進入容器,查看 dataVolumeContainer 目錄下文件

結論:當再次啟動容器時,在宿主機 myDataVolume 文件夾中內容會同步到容器中。

enter image description here

E. 命令 ( ro 只讀)

通過 docker run -it -v /myDataVolume2:/dataVolumeContainer2:ro 啟動容器在宿主機 myDataVolume2 目錄下新增文件 host.txt在容器 dataVolumeContainer2目錄下查看文件在容器dataVolumeContainer2 目錄下新增 container.txt 文件,發(fā)現(xiàn)報錯

enter image description here

通過 docker inspect container-id 查看權限

“Mounts”: [
{
“Type”: “bind”,
“Source”: “/myDataVolume2”,
“Destination”: “/dataVolumeContainer2”,
“Mode”: “ro”, // 只讀
“RW”: false,
“Propagation”: “rprivate”
}
],

結論:增加 ro 只讀參數(shù)的話,代表容器內目錄只能從宿主機同步,而不能在 dataVolumeContainer2 中進行增刪改操作。
3.4.2 Dockerfile 添加

Dockerfile 會在下一章節(jié)詳細講解,這里只需要按照步驟操作即可。

A. 在根目錄下新建 mydocker 文件夾并進入

cd /
mkdir mydocker
cd mydocker

B. 可在 Dockerfile 中使用 VOLUME 命令來給鏡像添加一個或多個數(shù)據(jù)卷

VOLUME[’/dataVolumeContainer1’,’/dataVolumeContainer2’,’/dataVolumeContainer3’]
出于可移植和分享的考慮,使用-v 宿主機目錄:容器目錄這種方法不能關直接在Dockerfile中實現(xiàn)。
由于宿主機目錄是依賴特定宿主機的,因此并不能保證所有的宿主機上都存在這樣的特定目錄。

C. File 構建

在 mydocker 目錄下新建 Dockerfile 文件,并編寫內容如下:

volume test

FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo “finished,–success1”
CMD /bin/bash

D. build生成鏡像

使用如下命令進行構建

docker build -f 指定目錄/Dockerfile -t 命名空間/鏡像名:TAG

eg.

docker build -f /mydocker/Dockerfile -t happy:centos

ps:此處定位為鏡像為happy,TAG為centos,建議書寫為happy/centos:1.0

構建過程如下:

enter image description here

如圖,我們在 Dockerfile 中的編寫的命令也是順序執(zhí)行的,在執(zhí)行完畢后構建出 id 為 fed673f01e52 的鏡像。

通過 docker images 查看,可以看到剛剛構建好的鏡像文件:

enter image description here

E. 運行容器

通過命令 docker run -it happy:centos 運行容器進入容器后,在根目錄下執(zhí)行 ll 命令,會發(fā)現(xiàn),在 Dockerfile 中配置的 VOLUME 已經(jīng)生效,自動生成了 dataVolumeContainer1、dataVolumeContainer2 兩個文件夾

F. 查看宿主機目錄

在通過 docker run -it -v 命令時,可以指定宿主機目錄,那通過 Dockerfile 方式,如何查看對應的宿主機目錄呢?

當然,還是通過全能的 docker inspect 命令,來查看,關鍵信息如下:

“Mounts”: [
{
“Type”: “volume”,
“Name”: “382f84de2953b04ccdeba4c3cc1de219c8039c07f43e9d424f2087fc5785e60b”,
“Source”: “/var/lib/docker/volumes/382f84de2953b04ccdeba4c3cc1de219c8039c07f43e9d424f2087fc5785e60b/_data”,// 宿主機對應目錄
“Destination”: “/dataVolumeContainer1”,
“Driver”: “l(fā)ocal”,
“Mode”: “”,
“RW”: true,
“Propagation”: “”
},

]

大家可以參照上一節(jié)使用命令添加容器卷中不斷增刪改文件方式來驗證同步效果,結論是一樣的,這里就不再贅述了。
3.4 數(shù)據(jù)卷容器
3.4.1 概念

已命名的容器掛載數(shù)據(jù)卷,其他容器通過掛載這個(父容器)實現(xiàn)數(shù)據(jù)共享,掛載數(shù)據(jù)卷的容器,成為數(shù)據(jù)卷容器。
3.4.2 volumes-from

以上一節(jié)中新建的鏡像 happy:centos 為模板運行容器 dc1 、dc2 和 dc3。

他們已經(jīng)具有容器卷:

dataVolumeContainer1、dataVolumeContainer2。

操作步驟如下:

啟動父容器 dc01,并且在 dataVolumeContainer1 文件夾中新建 dc01_add.txt 文件,命令如下:

docker run -it --name dc01 happy:centos
cd dataVolumeContainer1
touch dc01_add.txt

分別啟動 dc02 和 dc03 兩個容器,繼承自 dc01,分別在 dc02、dc03 中的 dataVolumeContainer1 中添加 dc02_add.txt 和 dc03_add.txt,命令如下:

docker run -it --name dc02 --volumes-from dc01 happy:centos
cd dataVolumeContainer1
touch dc02_add.txt

docker run -it --name dc03 --volumes-from dc01 happy:centos
cd dataVolumeContainer1
touch dc03_add.txt

分別查看 dc01、dc02 和 dc03 下 dataVolumeContainer1 下文件,會發(fā)現(xiàn)全部同步刪除 dc01 容器,dc02 添加 dc02_update.txt 文件,查看 dc03 容器是否會同步到(會)刪除 dc02,新建 dc04 繼承自 dc03,再刪除 dc03,查看 dc04 容器中 dataVolumeContainer1 下文件是否存在(都存在)

結論:容器之間配置信息的傳遞,數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止,這也是其特性之一。
四、Dockerfile 全解析
4.1 概念

Dockerfile 是用來構建 Docker 鏡像的構建文件,是由一系列命令和參數(shù)構成的腳本。
4.2 構建步驟

編寫Dockerfile文件docker builddocker run

4.3 構建過程解析
4.3.1 基礎知識

每條保留字指定都必須大寫字母且后面要至少跟隨一個參數(shù)指定按照從上到下,順序執(zhí)行# 表示注釋每條指令都會創(chuàng)建一個新的鏡像層,并對鏡像進行提交

4.3.2 Dockerfile 執(zhí)行流程

docker 從基礎鏡像運行一個容器執(zhí)行一條指令并對容器做出修改執(zhí)行類似 docker commit 指令提交一個新的鏡像層docker 再基于剛提交的鏡像運行一個新容器執(zhí)行 dockerfile 中的下一條指令直到所有指令都執(zhí)行完成

4.3.3 小結與關系

從應用軟件的角度來看,Dockerfile、Docker鏡像和Docker容器分別代表軟件的三個階段:

Dockerfile:軟件的原材料
Docker鏡像:軟件的交付品
Docker容器:軟件的運行狀態(tài)

Dockerfile面向開發(fā),Docker鏡像成為交付標準,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基石。

enter image description here

三者關系如下:

Dockerfile:需要定義一個 Dockerfile,Dockerfile 定義了進程需要的一切東西。Dockerfile 設計的內容包括執(zhí)行代碼或者文件、環(huán)境變量、依賴包、運行時環(huán)境、動態(tài)鏈接庫、操作系統(tǒng)的發(fā)行版本、服務進程和內核進程(當應用進程需要和系統(tǒng)服務和內核進程打交道時,需要考慮如何設計 namespace 的權限控制)等。Docker 鏡像:在用 Dockerfile 定義一個文件后,docker build 會產(chǎn)生一個 Docker 鏡像,當運行 Docker 鏡像時,才真正開始提供服務。Docker 容器:容器是直接提供服務的。

4.4 Dockerfile 體系結構(保留字指令)

FROM:基礎鏡像,當前新鏡像是基于哪個鏡像MAINTAINER:鏡像維護者的姓名和郵件地址RUN:容器構建時需要運行的命令EXPOSE:當前容器對外暴露的端口WORKDIR:指定在創(chuàng)建容器后,終端默認登陸進來后的工作目錄,一個落腳點ENV:用來在構建鏡像過程中設置環(huán)境變量ADD:將宿主機目錄下的文件拷貝到鏡像且 ADD 命令會自動處理 URL 和解壓 tar 壓縮包COPY:類似 ADD,拷貝文件和目錄到鏡像中。 將從構建上下文目錄中<源路徑>的文件/目錄復制到新的一層鏡像內的<目標目錄>位置。

COPY src des
COPY [“src” “des”]

VOLUME:數(shù)據(jù)容器卷,用于保存數(shù)據(jù)和持久化工作CMD:指定一個容器啟動時要運行的命令。Dockerfile 中可以有多個 CMD 命令,但只有最后一個生效,CMD 會被 docker run 之后的參數(shù)替換ENTRYPOINT:指定一個容器啟動時要運行的命令。其目的和 CMD 命令一樣,都是在指定容器啟動程序及參數(shù)ONBUILD:當構建一個被繼承的 Dockerfile 時運行命令,父鏡像在被子繼承后父鏡像的 onbuild 被觸發(fā)

總結如下:

enter image description here
4.5 案例之自定義鏡像 centos
4.5.1 引入

從 dockerhub 拉下來的 centos 鏡像,默認工作目錄是根目錄,并且不支持 vim 和 ifconfig 等配置,如下:

enter image description here
4.5.2 目標

登陸后切換默認路徑增加 vim 編輯器查看網(wǎng)絡配置 ifconfig 支持

4.5.3 編寫 Dockerfile

在根目錄下新建文件夾 mydocker,并新建 Dockerfile_mycentos,內容如下:

FROM centos
MAINTAINER happyhappy@126.com

ENV MYPATH /tmp
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 9001

CMD echo $MYPATH
CMD echo “build success”
CMD /bin/bash

4.5.4 構建鏡像

執(zhí)行命令,通過剛編寫好的 Dockerfile 構建鏡像,語法如下:

docker build -f Dockerfile路徑 -t 新鏡像名:TAG

示例:

docker build -f /mydocker/Dockerfile_mycentos -t happy/mycentos:1.0 .

4.5.5 運行

構建完成后,可以正常運行鏡像了,命令如下:

docker run -it happy/centos:1.0

此時,會發(fā)現(xiàn),默認工作目錄已經(jīng)發(fā)生變化,同時該鏡像也支持 vim 和 ifconfig 查看網(wǎng)絡配置了。
4.5.6 查看鏡像變更歷史

通過如下命令可以查看指定鏡像的變更(生成)歷史:

docker history image-id

4.6 CMD 和 ENTRYPOINT 區(qū)別
4.6.1 CMD

指定一個容器啟動時要運行的命令Dockerfile 中可以有多個 CMD 指令,但只要最后一個生效CMD 會被 docker run 之后的參數(shù)替換

示例:

執(zhí)行 docker run -it -p 7777:8080 tomcat 啟動 tomcat 容器,此時在瀏覽器通過訪問 http://ip:7777 就可以訪問到剛啟動的 tomcat 實例了執(zhí)行 docker run -it -p 7777:7070 tomcat ls -l,會發(fā)現(xiàn)并沒有出現(xiàn)啟動 tomcat 時的輸出,而是輸出了 /usr/local/tomcat 目錄下的文件和文件夾信息,瀏覽器也無法訪問啟動的 tomcat 實例,這也就驗證了 CMD 參數(shù)替換的特點輸出 /usr/local/tomcat 是因為在 tomcat 的 Dockerfile 中指定了 WORKDIR 為 /usr/local/tomcat此處在docker run 后增加參數(shù)相當于在 Dockerfile 中增加 CMD ls -l /usr/local/tomcat

4.6.2 ENTRYPOINT

指定一個容器啟動時要運行的命令docker run 之后的參數(shù)會被當作參數(shù)傳遞給 ENTRYPOINT,形成新的命令組合

示例:

目標:制作ENTRYPOINT版本查詢ip信息鏡像
步驟:

A. 編寫Dockerfile,如下:

FROM centos
RUN yum install -y curl
ENTRYPOINT [“curl”,"-s",“http://ip.cn”]

B. build 鏡像

docker build -f /mydocker/Dockerfile -t myip .

C. 運行鏡像

使用如下命令運行容器:

docker run myip

D. 擴展功能,增加http報文頭

curl命令通過-i參數(shù)可以查看報文頭。 通過如下命令,可在剛才構建的鏡像基礎上擴展該功能:

docker run myip -i

此處,相當于在 Dockerfile 相當于 CMD [“curl”,"-s -i",“http://ip.cn”],如果此處 Dockerfile 中使用 CMD [“curl”,"-s",“http://ip.cn”] 的話,增加 -i 參數(shù)后,相當于 CMD [“curl”,"-s -i",“http://ip.cn”] CMD -i,根據(jù) CMD 指令的特點,只會執(zhí)行 CMD -i,那么很明顯就運行報錯了,所以這就是兩者的不同,相比而言,ENTRYPOINT 更加強大。
五、Docker 實戰(zhàn)
5.1 自定義 tomcat9 鏡像

A. 新建 tomcat9 文件夾,用于存放相關文件

mkdir -p /mydocker/tomcat9
cd /mydocker/tomcat9

B. 新建 copy.txt用于測試 COPY 指令

touch copy.txt

C. 將 jdk 和 tomcat 壓縮包拷貝到當前目錄

cp /tmp/apache-tomcat-9.0.8-tar.gz ./
cp /tmp/jdk-8u171-linux-x64-tar.gz ./

D. 新建 Dockerfile,內容如下

FROM centos
MAINTAINER happyhappy@126.com

把宿主機當前上下文的copy.txt拷貝到容器/usr/local路徑下

COPY copy.txt /usr/local/copyincontainer.txt

把jdk和tomcat添加到容器并解壓縮

ADD jdk-8u171-linux-x64-tar.gz /usr/local/
ADD apache-tomcat-9.0.8-tar.gz /usr/local/

安裝vim編輯器

RUN yum -y install vim

設置工作路徑

ENV MYPATH /usr/local
WORKDIR $MYPATH

配置jdk和tomcat環(huán)境變量

ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH JAVAHOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVAH?OME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
ENV PATH PATH:PATH:PATH:JAVA_HOME/bin:CATALINAHOME/lib:CATALINA_HOME/lib:CATALINAH?OME/lib:CATALINA_HOME/bin

容器運行時監(jiān)聽端口

EXPOSE 8080

啟動時運行tomcat

ENTRYPOINT [“usr/local/apache-tomcat-9.0.8/bin/startup.sh”]

CMD [“usr/local/apache-tomcat-9.0.8/bin/catalina.sh”,“run”]

CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out

E. 構建鏡像

docker build -f Dockerfile -t happy/mytomcat9:1.0

F. 運行

docker run -d -p 8081:8080 --name mytomcat9 -v /mydocker/tomcat9/test:/usr/local/apache-tomcat-9.0.8/webapps/test -v /mydocker/tomcat9logs/:/usr/local/apache-tomcat-9.0.8/logs --privileged=true happy/mytomcat9:1.0

乍一看,挺復雜,其實拆分開就特別簡單了,無非就是增加了兩個數(shù)據(jù)卷,存儲和持久化數(shù)據(jù)而已。

G. 發(fā)布 test 項目

在 /mydocker/tomcat9/test 目錄下,新建最簡單的 web 工程文件即可,例如新建WEB-INF文件夾,并且在 WEB-INF 中新建web.xml和hello.jsp,然后重啟容器即可。

此時,再通過瀏覽器訪問 http://ip:8081/test/hello.jsp 就可以看到剛添加的頁面,同時在 tomcat9logs 文件夾中也會有對應的日志信息。
5.2 安裝 Tomcat

安裝 tomcat 比較簡單,只需要注意端口映射即可,步驟如下:
5.2.1. docker hub上查找tomcat鏡像

docker search tomcat

5.2.2. 從 docker hub 上拉取 tomcat 鏡像到本地

docker pull tomcat

5.2.3. 通過 docker images 查看是否拉取成功

docker images

5.2.4. 使用 tomcat 鏡像創(chuàng)建容器(運行鏡像)

docker run -it -p 9999:8080 --name tomcat01 tomcat

5.3 安裝 MySQL
5.3.1. 下載鏡像

docker pull mysql

5.3.2. 通過鏡像啟動容器

docker run --name mysql01 -d mysql

此時,通過 docker ps 查看運行中的容器,缺發(fā)現(xiàn)沒有剛剛啟動的 mysql01,通過 docker ps -a 發(fā)現(xiàn),其狀態(tài)已經(jīng)是 Exited,路徑如下:

enter image description here

那就查看一下 mysql01 的日志信息,看看有沒有保存,命令為 docker logs 9b0f3098ce78,發(fā)現(xiàn)錯誤日志如下:

error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

原來是數(shù)據(jù)庫沒有初始化,并且沒設置 password,查閱文檔,發(fā)現(xiàn):

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
$ docker run --name some-mysql -e MY
… where some-mysql is the name you want to assign to your container, my-secret-pw is the password to be set for the MySQL root user and tag is the tag specifying the MySQL version you want. See the list above for relevant tags.

也就是說,需要指定 -e MYSQL_ROOT_PASSWORD=my-secret-pw 來設置 MySQL 中 root 用戶密碼。

so,那就試一下吧。

根據(jù)鏡像啟動容器,如下:

docker run --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

通過 docker ps 查看正在運行中容器,會發(fā)現(xiàn) mysql 已經(jīng)處于運行狀態(tài)了。

enter image description here
5.3.3. 將宿主機端口 5555 映射到 mysql 容器 3306

如題,將宿主機端口 5555 訪問映射到 mysql 容器的 3306 端口,命令如下:

docker run --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -p 5555:3306 -d mysql

如上,可再通過 docker ps 查看容器運行及 port。
5.3.4. 使用命令行連接到 mysql 容器

在本機使用 iTerm2 連接到 mysql 容器,執(zhí)行如下命令:

mysql -h*...* -uroot -p123456 -P 5555

如連接失敗,請參考鏈接。
5.3.5. 使用 Navicat 連接到 mysql 容器

新建連接,如圖:

enter image description here

如連接失敗,請參考:

https://blog.csdn.net/u010358168/article/details/81253744https://blog.csdn.net/u010358168/article/details/53157857

解決。
5.4 安裝 Redis
5.4.1 拉取鏡像

docker pull redis:3.2

5.4.2 運行鏡像

docker run -p 6379:6379 -v /mydocker/myredis/data:/data -v /mydocker/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --apendonly yes

又是一長串命令,如果拆分開來的無非就是端口映射、數(shù)據(jù)卷等配置。

具體 redis.conf 配置,詳見博客
5.5 安裝 WordPress
5.5.1 WordPress簡介

WordPress 是一個非常著名的 PHP 編寫的博客平臺,發(fā)展到目前為止已經(jīng)形成了一個龐大的網(wǎng)站平臺系統(tǒng)。在 WP 上有規(guī)模龐大的插件和主題,可以幫助我們快速建立一個博客甚至網(wǎng)站。

在 Windows 上可以非常方便的安裝 WordPress,因為 IIS 上集成了 WordPress 的一鍵安裝包。而在 Linux 上安裝 WordPress 就比較復雜了,我們需要配置 PHP 環(huán)境、Apache 或者 Nginx 服務器、MySQL 數(shù)據(jù)庫以及各種權限和訪問問題。所以在 Linux 上最好的辦法就是使用 Docker 來安裝 WordPress。
5.5.2 安裝 MySQL

WordPress 需要使用 MySQL 數(shù)據(jù)庫,這里也有兩種方式,第一種是安裝本地 MySQL,第二種就是在 Docker 中安裝 MySQL 鏡像。此處以在 Docker 中安裝 MySQL 為例進行演示。

安裝詳見 5.3 章節(jié)
5.5.3 安裝 WordPress

A. 搜索鏡像

docker search wordpress

B. 下載鏡像

docker pull wordpress

5.5.4 配置 WordPress

安裝完 MySQL,下載完 WordPress 鏡像后,就可以啟動 WordPress 了。

詳細的文檔參考這里。

docker run --name mywordpress --link mysql:mysql -p 8080:80 -d wordpress

name:指定要啟動的 WordPress 實例名稱link:指定要使用的 Docker MySQL 實例名稱p:將 Docker 內部的 80 端口映射到本地的 8080 端口上

然后打開瀏覽器,輸入 http://localhost:8080(端口號是命令中設置的),然后就可以看到 WordPress 了。按照提示輸入用戶名等信息,然后安裝 WordPress。等到它提示安裝完成,那么 WordPress 的安裝就算大功告成了。

最后稍加配置,再添加諸如內網(wǎng)映射等功能之后,站點就可以對外訪問了。

篇幅原因,不在此處進行過多細節(jié)講解,建議關注博客和公眾號 JADreamFactory,會有具體文章對細節(jié)進行講述。
5.6 本地鏡像推送到阿里云
5.6.1 阿里云 ECS Docker 生態(tài)

enter image description here
5.6.2 鏡像生成

通過前面的 Dockerfile 生成鏡像從運行中的容器創(chuàng)建一個新的鏡像

docker commit [OPTIONS] container-id [REPOSITORY[:TAG]]

5.6.3 本地鏡像推送到阿里云

A. 準備鏡像文件

通過docker build制作鏡像,參照前面若干示例,此處不再重復將修改后的鏡像重新打包為一個新鏡像,命令如下:

docker commit -a “rainbow” -m “my image” 容器ID new-image:版本號

ps:-a :鏡像的作者,-m:鏡像的提交信息,容器ID 是運行鏡像之后得到的那個容器 ID。

B. 阿里云開發(fā)者平臺

注冊并登陸開發(fā)者平臺,鏈接為:https://cr.console.aliyun.com/cn-hangzhou/repositories

C. 創(chuàng)建倉庫鏡像

如圖所示,創(chuàng)建鏡像倉庫:

enter image description here

設置代碼源:

enter image description here

D. 登錄阿里云Docker Registry

$ sudo docker login --username=****** registry.cn-hangzhou.aliyuncs.com

ps:用于登錄的用戶名為阿里云賬號全名,密碼為開通服務時設置的密碼,可以在產(chǎn)品控制臺首頁修改登錄密碼。

E. 將鏡像推送到Registry

$ sudo docker login --username=**** registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/happy2018/test_repository:[鏡像版本號]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/happy2018/test_repository:[鏡像版本號]

ps:此處的 username 為阿里云的登錄賬號

5.6.4 將阿里云鏡像下載到本地

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/happy2018/test_repository:[鏡像版本號]

六、總結

文章篇幅過長,所以在部分知識點介紹時不會太細,但核心知識來說,絕對干貨滿滿,如果能掌握這些的話,可以達到初級到中級及實戰(zhàn)的目標。

通過本篇文章,希望你能了解并掌握:

Docker 鏡像原理、分層、UnionFS 聯(lián)合文件系統(tǒng)及特點Docker 容器數(shù)據(jù)卷的概念及如何通過兩種方式進行添加Dockerfile 關鍵指令及使用指定來自定義鏡像自行安裝配置 MySQL、Tomcat、Redis 和 Nginx 等

七、更多精彩

博主近期在 CSDN 寫博客,目前閱讀量已超過 17 W,后續(xù)針對該系列文章較多問題的解答及詳細專題會以博客或公眾號文章的形式發(fā)布,當然內容包括但不限于 Java、Android、Docker、SpringBoot、Redis 等等。

建議關注博客,點我前往推薦關注微信公眾號 JADreamFactory。

八、答謝

一鞠躬
再鞠躬
三鞠躬

再次感謝各位的支持,如有問題,歡迎指出~

總結

以上是生活随笔為你收集整理的Docker | Docker技术基础梳理(五) - Docker网络管理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产成人一区二区啪在线观看 | 色婷婷狠狠五月综合天色拍 | 成人一级免费电影 | 91看片黄色| 美女网站色| wwxxx日本 | 天天操夜夜干 | 99精品免费久久久久久日本 | 国产黄色美女 | 久久蜜臀av | 麻豆一精品传二传媒短视频 | 在线观看一 | 视频在线亚洲 | 日韩激情视频在线 | 伊人中文字幕在线 | 久久1区 | 99精品免费网 | 日韩电影一区二区在线观看 | 色噜噜日韩精品欧美一区二区 | 国产免费看 | 黄色免费看片网站 | 成人全视频免费观看在线看 | www.狠狠| 亚洲天堂毛片 | 日产中文字幕 | 黄av免费在线观看 | 99精品视频在线观看免费 | 日韩视频在线观看视频 | 99久久一区 | 精品国产aⅴ麻豆 | 人人狠| 激情网站五月天 | 国内精品久久久久久久久 | 成av在线| 一区二区三区在线影院 | 99视频黄| 中文字幕在线看视频国产中文版 | 亚洲国产wwwccc36天堂 | 五月婷婷毛片 | 久久久久久久久久久免费视频 | 亚洲天天摸日日摸天天欢 | 国产一区二区高清不卡 | 中文字幕免费播放 | 又黄又爽的视频在线观看网站 | 欧美日韩久久不卡 | 91大神dom调教在线观看 | 国产黄色特级片 | 日韩啪视频 | 日韩系列在线观看 | 国产97色 | 国产麻豆视频 | 狠狠网 | 日日噜噜噜噜夜夜爽亚洲精品 | 五月婷婷激情综合网 | 国产成人黄色网址 | 97超碰在 | 天天操天天摸天天爽 | 日韩欧美一级二级 | 国产剧情久久 | 黄网站免费大全入口 | 久久精品视频免费观看 | 粉嫩av一区二区三区入口 | 欧美国产日韩在线视频 | 国产永久免费观看 | 天无日天天操天天干 | 久久久国产一区二区三区 | 波多野结衣电影一区 | 丰满少妇在线观看 | 久久精品毛片基地 | 欧美成人一区二区 | 久久久久国产一区二区 | 粉嫩av一区二区三区四区五区 | 天天做日日做天天爽视频免费 | 日本久久精品 | 免费亚洲视频在线观看 | 激情网站免费观看 | 精品在线视频一区 | 黄p在线播放 | 西西www4444大胆在线 | 97超碰人人 | 久久精品美女视频网站 | 最近中文字幕视频网 | 超碰午夜| 韩国av一区二区三区 | 国产精品久久久久久久99 | 有没有在线观看av | 久草精品视频在线播放 | 黄色av电影免费观看 | 日本精品视频免费 | 日韩系列在线观看 | 中文欧美字幕免费 | 国产中文视 | 91视视频在线直接观看在线看网页在线看 | 尤物一区二区三区 | 久久久久北条麻妃免费看 | 99久久99久久精品免费 | 国产精品美乳一区二区免费 | 人人插人人玩 | 成人av片在线观看 | 成人久久视频 | 99久久久成人国产精品 | 91久久黄色 | 91麻豆精品国产91久久久久 | 深爱婷婷激情 | 久久久久久久免费观看 | 五月婷婷激情六月 | 欧美91精品 | 欧美日韩国产在线一区 | 精品黄色在线 | av电影在线观看 | 四虎国产永久在线精品 | 不卡视频一区二区三区 | 国产亚洲精品久久久久久 | 久久草网| 亚洲人成精品久久久久 | 成片视频免费观看 | 精品av网站| 久久露脸国产精品 | 天天操网站 | 久久在线精品 | 婷婷av网站 | 天天狠狠操 | 国产成人精品一区在线 | 西西444www大胆无视频 | 欧美激情精品久久久久久变态 | av手机在线播放 | 欧美国产在线看 | 精品欧美日韩 | 久久激情久久 | 男女全黄一级一级高潮免费看 | 天天插天天干天天操 | 99精品国产一区二区 | 激情五月婷婷综合网 | 日韩一区二区三区免费视频 | av成人亚洲 | 青青射| 日日骑 | 久久理论视频 | 激情综合色播五月 | 美女国产免费 | 久久激情久久 | 久久精品网址 | 六月丁香在线观看 | 91插插影库 | 亚洲视频专区在线 | 国模精品在线 | 亚洲国产中文字幕在线 | 精品久久亚洲 | 最新日韩电影 | 日韩在线视频观看 | 欧美日韩在线第一页 | 日韩在线视频免费看 | 日韩激情在线 | 五月婷婷色综合 | 亚洲aⅴ乱码精品成人区 | 国产69精品久久99的直播节目 | 成人性生爱a∨ | 色网站在线免费观看 | 在线观看岛国av | 国产精品高清在线 | 夜夜骑天天操 | 丁香av| 最新日韩视频在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 国产香蕉在线 | 亚洲精品国产精品国自产在线 | 99精品久久精品一区二区 | 三级动态视频在线观看 | 国产精品久久久99 | 婷婷色六月天 | 99热免费在线| 免费看一级特黄a大片 | 97在线观看免费高清 | 欧美性做爰猛烈叫床潮 | 五月婷婷一区二区三区 | 国产精品99久久免费观看 | 亚洲国产美女精品久久久久∴ | 婷婷精品视频 | 日韩在线播放欧美字幕 | 91一区二区三区久久久久国产乱 | 婷婷 综合 色 | 国产欧美日韩精品一区二区免费 | 最近2019中文免费高清视频观看www99 | 中文字幕乱码一区二区 | 国产精品久久久久av免费 | 久久天堂影院 | 精品 激情| 亚洲精品动漫久久久久 | 午夜电影中文字幕 | 99精品视频免费 | 欧美一区免费在线观看 | 国产色区| 97超级碰碰碰视频在线观看 | 久久久久国产精品免费 | 91视频成人免费 | 狠狠色丁香久久婷婷综合丁香 | 成人免费在线网 | 人人爽人人乐 | 久久久久亚洲精品 | 丁香婷婷综合激情 | 中文字幕观看在线 | 欧美日韩午夜爽爽 | 国产色黄网站 | 在线看成人 | 国产精品美女免费看 | 午夜精品久久久 | 亚洲精品在线国产 | 欧美一级在线看 | 国产99久久99热这里精品5 | 99热在线免费观看 | 精品影院 | 亚洲国产日韩一区 | 日韩在线免费观看视频 | 91高清视频在线 | 日本久久久久久科技有限公司 | 在线视频 成人 | 97视频免费播放 | 久久av一区二区三区亚洲 | 九九在线视频 | 久久公开免费视频 | 欧美日本不卡 | 国产精品不卡 | 狠狠色丁香婷婷综合久小说久 | 国产成人精品av在线观 | 亚州人成在线播放 | 97在线精品国自产拍中文 | 亚洲精品高清一区二区三区四区 | 国产亚洲精品久久19p | 免费看的黄网站软件 | 久久精品99国产精品亚洲最刺激 | 四虎永久免费网站 | 久色伊人 | 五月激情综合婷婷 | 久精品一区 | 日韩免费看的电影 | 成人免费影院 | 国产视频精品免费 | 夜色资源站国产www在线视频 | 丁香激情视频 | 婷婷九月丁香 | 久久久免费观看完整版 | 亚洲一区欧美精品 | 日本久久免费视频 | 成人av网站在线播放 | 精品国产不卡 | 五月激情五月激情 | 97成人在线观看视频 | 成年人看片网站 | 婷婷在线网站 | 国产特级毛片aaaaaaa高清 | 粉嫩av一区二区三区四区五区 | 欧美成人性网 | 久久精品久久精品 | 欧美一区二区在线刺激视频 | 国产精品白丝jk白祙 | 免费日韩av片 | 亚洲精品www久久久久久 | 91精品免费在线 | 色噜噜日韩精品一区二区三区视频 | 色多视频在线观看 | 成人午夜电影在线 | 中文字幕黄色 | 在线观看国产91 | 亚洲欧美日韩国产一区二区 | 色婷婷久久久综合中文字幕 | www久久九| 精品国产一区二区在线 | 国产午夜精品免费一区二区三区视频 | 91在线中文字幕 | 免费观看一级成人毛片 | 日本在线视频一区二区三区 | 国产成人精品aaa | 在线日韩| 一本一本久久a久久精品综合妖精 | www.人人草 | 亚洲视频一级 | 亚洲一区免费在线 | 亚洲精品视频在线观看视频 | 婷婷久久网 | 国产精品高清免费在线观看 | 二区三区在线观看 | 欧美另类亚洲 | 九九视频精品免费 | 国际精品久久久 | 中文字幕乱码在线播放 | 亚洲一级片在线观看 | 久碰视频在线观看 | 草久久久| 精品在线观看一区二区 | 激情婷婷在线 | 狂野欧美激情性xxxx | 色资源在线 | 狠狠躁夜夜躁人人爽视频 | 国产精品久久久久一区 | 久久96国产精品久久99软件 | 日韩欧美v | 日韩videos高潮hd | 国产最新视频在线 | 国产日韩欧美在线观看视频 | 日韩视频1区 | 欧美精品亚洲二区 | 国产成人免费在线 | 亚洲国产天堂av | 日韩高清久久 | 亚洲国产中文字幕 | 超级碰碰碰视频 | 亚洲免费av电影 | 久久在线精品视频 | 国产精品婷婷午夜在线观看 | 亚洲在线视频免费 | 天天做天天爱天天爽综合网 | www.香蕉视频 | 尤物九九久久国产精品的分类 | 在线观看国产区 | 女人18毛片a级毛片一区二区 | 精品天堂av | 亚洲高清视频在线观看免费 | 亚洲一级黄色片 | 久久久久免费网站 | 韩国精品福利一区二区三区 | 探花视频在线观看 | 久一久久 | 国产黄大片| 夜色成人网 | 成人免费视频免费观看 | 亚洲国产精品成人av | 欧美最猛性xxxxx免费 | 欧美色图30p | 操操操综合 | 久草综合视频 | 91精品第一页 | 在线精品视频免费播放 | 国产精品不卡在线播放 | 国产码电影 | 国产成人精品亚洲a | 久久色亚洲 | 69精品视频 | 色综合五月天 | 97在线超碰 | 毛片网站在线看 | 国产精品男女视频 | 成人va在线观看 | 久久av免费观看 | 九九九在线观看 | 久久亚洲免费视频 | 亚洲国产中文字幕在线观看 | 久久看片网 | 最新中文在线视频 | 成人国产精品久久久 | 国产成人av综合色 | 中文字幕资源在线观看 | 六月丁香在线视频 | 精品国产视频在线观看 | 国产成人精品免高潮在线观看 | 欧美精品久久人人躁人人爽 | 久久亚洲综合国产精品99麻豆的功能介绍 | 超碰在线人人 | 日日夜夜人人精品 | av在线播放一区二区三区 | 国产裸体bbb视频 | 亚洲精品中文字幕视频 | 亚洲黄色一级电影 | 有码中文在线 | 亚洲天堂首页 | 九九九九色 | 欧美最猛性xxxxx亚洲精品 | 91av欧美| 五月天久久激情 | 亚洲免费婷婷 | 成片人卡1卡2卡3手机免费看 | 国产69久久精品成人看 | 欧美一区二区在线刺激视频 | 91视频在线免费观看 | 国产视频在线观看一区二区 | 欧美va天堂va视频va在线 | 欧美日韩国产区 | 免费网站在线观看成人 | 国产精品一区二区在线观看 | 国产视频中文字幕 | 日韩视频在线观看免费 | 99久久精品国产毛片 | 99成人精品| 国产精品久久婷婷六月丁香 | 久久久久www| www.五月婷婷.com| 999视频在线观看 | 国产69久久久 | 色的网站在线观看 | 毛片基地黄久久久久久天堂 | 国产在线观看高清视频 | 久久综合色天天久久综合图片 | 亚洲另类xxxx | 中文字幕 国产专区 | 国产成人不卡 | 久久久久女教师免费一区 | 国产精品一区二区在线免费观看 | 婷婷丁香七月 | 奇米影视在线99精品 | 中文字幕乱在线伦视频中文字幕乱码在线 | 91精品欧美一区二区三区 | 久久久香蕉视频 | 亚洲 欧美 91 | 亚洲开心激情 | 日日夜夜天天久久 | 久久这里只有精品视频首页 | 午夜体验区 | 国产午夜精品免费一区二区三区视频 | 国产黄影院色大全免费 | 精品久久久成人 | 久久激情日本aⅴ | 国产精品国产毛片 | 日日夜夜操操操操 | 欧美先锋影音 | 日韩免费| 超碰在线色 | 99久久这里有精品 | 色中文字幕在线观看 | 国产精品不卡视频 | 五月婷婷激情六月 | 91看片黄色 | 国产亚洲综合精品 | 亚洲全部视频 | 五月天色婷婷丁香 | 久久久久久久久久久久av | 国产精品久久99综合免费观看尤物 | 亚洲精品久久久久久中文传媒 | 久久人人爽人人人人片 | 欧美大荫蒂xxx| 日韩二区三区在线观看 | 奇米网网址 | 日韩精品观看 | 在线视频日韩一区 | 美女黄频在线观看 | 日日夜夜艹| 久久视频这里有久久精品视频11 | 欧美日韩国产精品一区 | 午夜精品99久久免费 | 中文字幕av网站 | 激情五月***国产精品 | 日韩美女一级片 | 亚洲欧美日韩国产 | 精品国产一区二区三区四 | 成年人国产在线观看 | 日韩在线电影观看 | 色视频在线免费观看 | 91中文在线视频 | 伊香蕉大综综综合久久啪 | 亚洲伦理精品 | 日韩av一区二区三区在线观看 | 久久综合精品一区 | 色视频在线看 | 在线看日韩 | 免费人成在线观看网站 | 永久免费观看视频 | 久久久在线观看 | 欧美极品一区二区三区 | 色av婷婷 | 久久久久久蜜av免费网站 | 亚洲天堂网视频在线观看 | 免费观看完整版无人区 | 日韩激情影院 | 五月婷婷在线观看视频 | 狠狠色丁香婷婷综合基地 | 久久成年人视频 | 中文字幕在线播放一区二区 | 国产免费又粗又猛又爽 | 久久久精品高清 | 中文字幕乱码在线播放 | 国产精品成人自产拍在线观看 | 免费三级a | 91天堂素人约啪 | 国产精品嫩草69影院 | 国产成人精品一区二区在线观看 | 国产高清视频网 | 九九综合九九综合 | 九九色在线 | 99久久这里有精品 | 国产区高清在线 | 亚洲一级电影视频 | 在线国产中文 | 99性视频 | 成人在线播放视频 | 久久国产福利 | 国产精品久久久久永久免费 | 日韩av电影免费在线观看 | 欧美色伊人 | www.狠狠干 | 色婷婷激情四射 | 一区二区三区高清 | 973理论片235影院9 | 97在线播放视频 | 黄色av成人在线观看 | 久久久久久免费视频 | 操天天操 | 国内久久久 | 天天色天天射天天干 | 久久久久久久18 | 91大神在线看 | 超碰在线亚洲 | 又黄又爽又刺激的视频 | 精品视频99 | 欧美精品中文字幕亚洲专区 | 国产一级视频在线免费观看 | 狠狠干美女 | 精品久久久久久久久久久久 | 黄色av免费 | 99se视频在线观看 | 亚洲国产精品va在线看黑人 | 午夜国产福利在线观看 | 97偷拍视频| 青青草国产精品 | 国产一级视屏 | 色欲综合视频天天天 | 日韩黄色在线电影 | 国产永久免费 | 日韩特黄av | 又湿又紧又大又爽a视频国产 | 婷婷视频在线播放 | 91网在线看 | a天堂中文在线 | v片在线看 | 国产精品电影在线 | 97在线看 | 日韩中文在线电影 | 日韩城人在线 | 在线探花| 九九热在线观看视频 | 91麻豆精品国产91久久久久 | 日韩av网站在线播放 | 国产美女被啪进深处喷白浆视频 | 国产不卡一区二区视频 | 久久人人97超碰精品888 | 国产精品成人av电影 | 中文字幕xxxx | 日韩高清一二区 | 国产亚洲精品中文字幕 | 最近中文字幕完整高清 | 久久久久欧美精品999 | 高清av不卡 | 99精品视频免费全部在线 | 中文字幕在线日 | 狠狠狠狠狠狠天天爱 | 天天操夜夜爱 | 久久久久97国产 | 国产精品毛片久久蜜 | 午夜精品久久久久久中宇69 | 天堂黄色片| 男女啪啪免费网站 | 国产三级视频 | 九九综合在线 | 久久久久久久福利 | 久久精品999 | 成人在线播放视频 | 日韩在线视频一区二区三区 | 日韩精品免费在线视频 | 亚洲理论在线观看 | 玖玖精品视频 | 99久久久国产精品免费观看 | 欧美一进一出抽搐大尺度视频 | 天天射天天爱天天干 | 亚洲三级性片 | 最近免费观看的电影完整版 | 婷婷色 亚洲 | 特黄色大片| 日韩高清不卡一区二区三区 | 国产日韩一区在线 | 国产色网站 | 97精品免费视频 | 久久久久久久久久网 | 日韩欧美视频免费看 | 五月婷网站 | www.com黄| 开心丁香婷婷深爱五月 | 69视频国产 | 91热爆视频 | 天天操网站 | 91爱爱中文字幕 | 日韩欧美网址 | 色婷婷激婷婷情综天天 | 国产剧情一区 | 国产精品久久久久久999 | 精品久久一区二区 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 91国内在线 | 精品在线观看国产 | 伊人激情综合 | 97国产超碰在线 | 国产成人精品综合久久久 | 久久蜜臀av | 二区三区毛片 | 国产精品美女免费看 | 久爱精品在线 | 国产精品6 | 国产一区二区观看 | 欧美国产亚洲精品久久久8v | 91成人免费看 | 在线91视频 | 一区二区中文字幕在线播放 | 99久久精品免费看国产 | 亚洲精品视频在线观看视频 | 日韩av影视在线 | 婷婷在线精品视频 | 亚洲精品视频在线看 | 日韩av免费网站 | 日韩电影一区二区在线 | 天天射天天射天天 | av网站免费看 | 国产午夜精品一区二区三区在线观看 | 成人精品一区二区三区中文字幕 | aaa日本高清在线播放免费观看 | 美女视频黄网站 | 999久久精品| 日韩精品一区二区久久 | 天天操 夜夜操 | 久久精品视频播放 | 国产一区二区手机在线观看 | 国产96在线视频 | 热久久免费视频精品 | 国产美女在线观看 | 久久一线 | 亚洲婷婷在线 | 成人欧美一区二区三区黑人麻豆 | 国产精品第一视频 | 永久免费的啪啪网站免费观看浪潮 | 欧美xxxxx在线视频 | 伊人伊成久久人综合网站 | 免费97视频| 国内偷拍精品视频 | 久草www| 综合色天天 | 91麻豆精品久久久久久 | 天天天色综合 | 在线观看日韩精品视频 | 91日韩在线播放 | 麻豆精品视频在线观看免费 | 狠狠色丁香婷婷综合 | 精品资源在线 | 99久久激情 | 久久午夜免费观看 | 国产精品久久网 | 国产精品久久久久999 | 久久国产欧美日韩精品 | 亚洲黄色区 | 天天射射天天 | 美女在线免费观看视频 | 亚洲欧美视频在线 | 亚洲黄在线观看 | 最新成人在线 | 国产精品ⅴa有声小说 | 欧美一二三在线 | 久草在线资源免费 | 一级免费片 | 国产视频 亚洲精品 | 国产视频久 | 五月婷婷在线视频观看 | 成人黄大片 | 视频在线国产 | 亚洲精品视频二区 | 亚洲作爱视频 | 亚洲四虎| 四虎海外影库www4hu | 911精品视频 | 日韩av影视在线观看 | 成人a在线 | 亚洲理论在线观看 | 亚洲视频 中文字幕 | 成人av免费在线播放 | 99中文字幕| 黄av免费| 视频一区二区免费 | 天天爱天天草 | 在线最新av | 婷婷六月丁 | 欧美天天射 | 久草在线视频免费资源观看 | 亚洲国产理论片 | 日韩午夜三级 | 国产日韩精品一区二区在线观看播放 | 日韩中文字幕免费电影 | 天天操操 | 一本—道久久a久久精品蜜桃 | 黄色美女免费网站 | 天天插日日操 | 国产97视频在线 | 欧美午夜一区二区福利视频 | 久久99精品久久久久久秒播蜜臀 | 色综合五月天 | 欧美天天射| 麻豆免费视频网站 | 久久大视频 | 精品国产一区二区三区四 | 成人毛片a | 国产99久久久久 | 国精产品一二三线999 | 欧美日韩精品免费观看视频 | 国产免费又粗又猛又爽 | 久久久国产一区二区三区四区小说 | www免费网站在线观看 | 99热精品视 | 国产综合婷婷 | 婷婷久久国产 | 国产精品女 | 亚洲精品综合一区二区 | 日韩在线免费视频 | 在线观看91网站 | 97超碰在线久草超碰在线观看 | 国产不卡av在线播放 | 国产日韩精品视频 | 99re国产 | 美女网站视频免费都是黄 | 欧美日韩高清在线一区 | 正在播放久久 | 久草视频网 | 精品产品国产在线不卡 | 精品国产aⅴ麻豆 | 国产99精品 | 国产精品久久一区二区三区, | 国产精品成人国产乱一区 | 草久在线播放 | 久草在线视频免费资源观看 | 狠狠操夜夜 | 天天综合网 天天综合色 | 精品一区二区在线观看 | 国产在线专区 | 久久这里只有精品23 | 国模精品一区二区三区 | 五月婷婷亚洲 | 欧美一级视频免费 | 国产精品免费久久久久影院仙踪林 | 99在线视频精品 | 亚洲免费在线 | 中文字幕在线观看视频一区 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 亚洲视频免费在线观看 | 亚洲精品午夜aaa久久久 | 精品久久久久久久久久久院品网 | 人人插人人艹 | 91一区二区三区久久久久国产乱 | 亚洲国产网站 | 中文字幕 91 | 特黄特色特刺激视频免费播放 | 四虎影视成人永久免费观看视频 | 亚洲自拍偷拍色图 | 中文字幕国语官网在线视频 | 免费99视频 | 国产大片黄色 | 国产一区二区三区视频在线 | 黄色片亚洲 | 成人免费一级 | 91传媒91久久久 | 久久人人爽人人片av | 久草视频手机在线 | 日韩av影视在线 | 久精品在线观看 | 黄色tv视频 | 99热最新 | 免费看三级黄色片 | 六月丁香婷 | 亚洲成人频道 | 国产在线不卡精品 | 婷婷四房综合激情五月 | 欧美日韩免费观看一区=区三区 | 日韩毛片一区 | 久草在线99 | 91在线www | 国产二区视频在线观看 | av在线播放网址 | 日韩大片免费在线观看 | 夜色资源网 | www.久久99 | 亚洲精品一区二区网址 | 免费观看午夜视频 | 免费黄色网址网站 | 国产破处在线播放 | www.色午夜 | 人人草在线视频 | 色中文字幕在线观看 | 中文字幕 国产视频 | 在线观看黄网 | 免费在线黄网 | 在线高清一区 | 国产精品久久久久久久久久久久冷 | 久久久久久高潮国产精品视 | 国产高清在线 | 四虎影视精品永久在线观看 | av一区在线播放 | 欧洲一区二区在线观看 | 色综久久 | 欧美一二三专区 | 九9热这里真品2 | 操操操天天操 | 伊人久久精品久久亚洲一区 | 久久成人精品电影 | 欧美日韩国产高清视频 | 在线观看黄色大片 | 高清有码中文字幕 | 国产精品99在线播放 | 激情欧美一区二区免费视频 | 五月婷婷激情六月 | 国产精品免费一区二区三区 | 日本精品小视频 | 久久免费视频网站 | 中文字幕网址 | 西西4444www大胆艺术 | 丁香六月婷婷开心 | 日韩高清免费无专码区 | 天天躁天天躁天天躁婷 | 亚洲精品白浆高清久久久久久 | 人成午夜视频 | 黄色软件网站在线观看 | 日韩av在线影视 | 91九色视频观看 | 国产97视频在线 | 亚洲美女在线国产 | 99视 | 日本精品视频一区 | 色香蕉在线视频 | 久草在线免费资源 | 久草a视频| 日韩精品在线视频 | 日韩在线观看精品 | 久草久视频 | 亚洲国产日韩精品 | 操操日日 | 嫩小bbbb摸bbb摸bbb | 欧美久草网 | 九九热久久久 | 996久久国产精品线观看 | 亚洲成人第一区 | 99精品欧美一区二区蜜桃免费 | 亚洲视频精选 | 激情综合色播五月 | 久久久午夜剧场 | 狠狠操操操 | 91精品视频一区二区三区 | 日韩欧美第二页 | 99热这里是精品 | 黄污网 | 国产亚洲精品久久久久久久久久 | 久久99久久99精品免视看婷婷 | 在线你懂 | 91福利视频免费 | 色婷婷影视 | 男女免费av| 国产又黄又爽又猛视频日本 | 欧美日韩裸体免费视频 | 免费在线播放视频 | 日韩有码中文字幕在线 | av免费电影网站 | 日韩电影在线一区二区 | 一区二区三区四区五区在线视频 | 天天干天天干天天射 | 蜜桃av久久久亚洲精品 | 精品理论片 | 国产成年免费视频 | 国产精品s色 | 国产小视频国产精品 | 亚洲欧美日韩国产 | 国产精品情侣视频 | 欧美二区在线播放 | 91色视频 | 欧美激情精品久久久久久免费 | 亚洲精区二区三区四区麻豆 | 亚洲最大成人免费网站 | 手机av电影在线 | 欧美午夜久久久 | 99产精品成人啪免费网站 | 精品国产乱码一区二 | 精品一区二区三区久久久 | 91在线视频播放 | 激情丁香综合五月 | 五月婷婷丁香 | 91久久精品一区 | 午夜精品视频免费在线观看 | 99国产一区二区三精品乱码 | av中文字幕在线观看网站 | 波多野结衣电影一区二区 | 又黄又爽又刺激视频 | 国产九色在线播放九色 | 狠狠亚洲| 久久草视频 | 日本性高潮视频 | 亚洲精品18日本一区app | 在线观看一区二区精品 | 日韩专区在线 | 三级免费黄 | 国产精品国产三级国产aⅴ9色 | 久久国产精品色av免费看 | 五月婷婷六月丁香 | japanese黑人亚洲人4k | 日本中出在线观看 | 日韩av综合网站 | 亚洲欧美日韩国产精品一区午夜 | 97超碰人人澡人人 | 天天操夜夜看 | 奇米网777| 午夜免费福利视频 | 天天干天天做天天操 | 在线观看国产永久免费视频 | 成年人在线免费视频观看 | 国产一级视频在线观看 | 免费观看国产精品 | 精品在线播放 | 九色最新网址 | 亚洲视频免费在线 | 91看片网址 | 成人午夜剧场在线观看 | 国产伦理一区二区三区 | 日韩在线电影观看 | 亚洲人成人天堂h久久 | 亚洲免费一级电影 | 激情网五月天 | 91在线视频观看免费 | 久久久久久久久久亚洲精品 | 精品九九九九 | 久久国内精品视频 | 亚洲免费a | 99精品毛片 | 色婷久久 | 玖玖视频精品 | 97天天干| 人人添人人澡人人澡人人人爽 | 国产成人一区二区三区在线观看 | 99精品系列 | 美国三级黄色大片 | 国产美女精彩久久 | 色网址99 | 国产精品久久久久久久久久尿 | 久久看视频 | 奇米影视在线99精品 | 91精品国产福利在线观看 | 在线观看视频 | 福利视频第一页 | 国产一区二区在线观看免费 | 96视频在线 | 深爱激情婷婷网 | 激情偷乱人伦小说视频在线观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 亚洲国产精品第一区二区 | 激情婷婷亚洲 | 日本精品小视频 | 亚洲一区天堂 | 日本少妇视频 | 国偷自产视频一区二区久 | 特级西西444www大胆高清无视频 | 久久综合色8888 | 国产xvideos免费视频播放 | 区一区二区三区中文字幕 | 久久涩视频 | 天天摸夜夜添 | 在线观影网站 | www激情久久| 久久综合婷婷 | 日韩精品一区二区三区第95 | 久久在线影院 | 日韩精品视频免费 | 国产精品乱码高清在线看 | 国产精品毛片久久蜜 | 日本中文字幕在线一区 | 亚洲国产人午在线一二区 | 久久国产香蕉视频 | 亚洲 av网站 | 中文字幕在线观看播放 | 91成人精品一区在线播放 | 香蕉影院在线 | av三级av| 亚洲黄色av | 91高清视频免费 | 亚洲免费av在线 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 亚洲免费永久精品国产 | 亚洲在线看 | 国产精品18久久久久久首页狼 | 成年人视频在线免费 | 人人澡人人干 | 亚洲久在线 | 亚洲精品久久久久久久不卡四虎 | 亚洲一区免费在线 | 午夜精品久久久久久 | 久草a在线 | 97在线视频免费 | 久久国产福利 | 婷婷久操 | 91在线精品秘密一区二区 | 狠狠狠狠狠狠狠狠 | 国产无套精品久久久久久 | 亚洲精品小区久久久久久 | 久久精品艹 | 久久夜av| 在线视频电影 | 久久久久久久久电影 | 欧美日韩精品国产 | 国产69精品久久久久99尤 | 天天操一操| 色吊丝在线永久观看最新版本 | 亚洲一区日韩 | 国产成人精品在线观看 | 中文字幕中文字幕在线一区 |