国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

SpringBoot Docker鏡像跨平臺部署與Linux驗收

SpringBoot Docker鏡像跨平臺部署與Linux驗收 簡介這是一份面向 Java 后端開發(fā)者與運維初學(xué)者的 Docker 部署實踐文檔圍繞在 Windows 環(huán)境中將 SpringBoot 項目構(gòu)建為鏡像并遷移到 Linux 主機運行展開。內(nèi)容從 Dockerfile 基礎(chǔ)寫法切入串聯(lián) jar 包復(fù)制、端口暴露、鏡像構(gòu)建、容器啟動與日志查看并延伸到容器網(wǎng)絡(luò)連通性測試、宿主機或獨立 MySQL 容器訪問、數(shù)據(jù)庫掛載目錄持久化等常見問題。文檔還涉及共享主機網(wǎng)絡(luò)、ping 與 telnet 排查、Docker Compose 管理多容器應(yīng)用等排錯思路對鏡像命名、端口沖突、容器重啟策略、MySQL 初始化密碼與目錄映射等細(xì)節(jié)也有交代幫助讀者理解鏡像、容器與數(shù)據(jù)卷之間的關(guān)系形成從本地開發(fā)機到 Linux 部署環(huán)境的完整參考。文件包共 1 個 docx約 2.48MB以圖文說明和命令示例為主便于對照實踐。已有 135 人學(xué)習(xí)適合作為 SpringBoot 容器化入門與跨平臺部署的實操資料。1. Windows 里把鏡像跑起來只是前半場搬到 Linux 才是真正的驗收在 Windows 上把 SpringBoot 項目打成 Docker 鏡像、docker run起容器、瀏覽器打開 8080 看到首頁很多人到這一步就收工了等docker save出一個幾百兆的 tar 丟到 Linux 上docker load起來容器啟動幾秒就退出日志里一行Connection refused指向數(shù)據(jù)庫才發(fā)現(xiàn)這套環(huán)境從來不是“裝個 Docker”這么簡單。Dockerfile 里 jar 路徑寫錯容器網(wǎng)絡(luò)默認(rèn)橋接解析不了容器名MySQL 數(shù)據(jù)目錄掛載權(quán)限對不上Linux 上的 docker-ce 版本比鏡像還老任何一處都能讓頁面白屏。這套流程適合手上有 SpringBoot MySQL Redis、想在 Windows 上開發(fā)調(diào)試、再把同一份鏡像搬到 Linux 跑起來的人。下面按裝什么、怎么裝、壞了怎么救走一遍。2. Dockerfile 落地openjdk:8-jdk-alpine 五行寫死一個可移植鏡像鏡像能不能在另一臺機器上活著跑起來八成取決于 Dockerfile 里那幾個路徑和基礎(chǔ)鏡像選得對不對。這一章先把項目結(jié)構(gòu)釘死再逐行拆一份能直接抄的 Dockerfile最后把docker build和docker run兩刀砍下去。2.1 先把 jar 包位置和 Dockerfile 擺放位置固定下來SpringBoot 項目打包用 Maven 就是一條命令產(chǎn)出的 jar 默認(rèn)落在target目錄下名字帶版本號。真正容易翻車的是位置Dockerfile必須放在項目根目錄也就是pom.xml同級因為它決定了docker build的構(gòu)建上下文build contextCOPY后面的源路徑永遠(yuǎn)是相對這個上下文算的不是相對Dockerfile所在行的位置。springboot-demo/ ├── pom.xml ├── Dockerfile - 必須在這一層 ├── src/ │ └── main/java/... └── target/ └── demo-app-1.0.0.jar - mvn package 之后才有打包命令用跳過測試的那條本地驗證過功能再跳別在 CI 里也一路跳過# 清理舊產(chǎn)物并跳過測試打包產(chǎn)物落在 target/ 下 mvn clean package -DskipTests打包完先ls target/*.jar看一眼真實文件名。target目錄里經(jīng)常還有xxx.jar.original這種后綴COPY target/*.jar app.jar在某些情況下會匹配到多個文件直接報錯所以我在正式 Dockerfile 里一律寫死完整文件名寧可改一次 Dockerfile 也不留這個隱患。如果你的項目名和版本號經(jīng)常變那就退一步用COPY target/*.jar前先確認(rèn)target下只有一個 jar或者加.dockerignore把*.original排除掉。2.2 逐行拆 DockerfileFROM、WORKDIR、COPY、EXPOSE、ENTRYPOINT這是能直接用的版本比原始寫法多了一個時區(qū)參數(shù)原因后面講# 基礎(chǔ)鏡像用 OpenJDK 8 的 alpine 精簡版體積小夠跑 SpringBoot FROM openjdk:8-jdk-alpine # 容器內(nèi)的工作目錄后面的相對路徑都基于它 WORKDIR /app # 把本地構(gòu)建出的 jar 復(fù)制進(jìn)鏡像并重命名為固定的 app.jar COPY target/demo-app-1.0.0.jar app.jar # 聲明應(yīng)用監(jiān)聽 8080屬于元數(shù)據(jù)不做端口映射 EXPOSE 8080 # 啟動命令exec 形式PID 1 就是 java 進(jìn)程 ENTRYPOINT [java, -Duser.timezoneAsia/Shanghai, -jar, /app/app.jar]FROM選openjdk:8-jdk-alpine的理由很實際SpringBoot 2.x 配 JDK 8 是主流組合alpine 版本鏡像只有百來兆推來推去不心疼。要注意 alpine 里沒有 glibc項目如果依賴 netty-tcnative 或者某些本地庫運行時會報Error loading shared library這種項目就得換openjdk:8-jdk-slim這類基于 Debian 的鏡像。WORKDIR /app不只是切目錄它會在鏡像層里創(chuàng)建這個目錄后面的COPY和ENTRYPOINT里寫/app/app.jar才對得上。COPY的兩個參數(shù)順序是“源 目標(biāo)”源必須在構(gòu)建上下文里../target/xxx.jar這種寫法直接失敗因為上下文之外的文件 Docker 看不見。EXPOSE 8080只是聲明不 publish真正對外還得靠docker run -p。寫它的價值在于別人docker inspect鏡像時能看到這個服務(wù)該用哪個端口。ENTRYPOINT用 JSON 數(shù)組的 exec 形式不是ENTRYPOINT java -jar app.jar這種 shell 形式。區(qū)別很致命shell 形式下 PID 1 是/bin/sh -cjava 進(jìn)程是子進(jìn)程docker stop發(fā)的 SIGTERM 到不了 JVM容器只能等 10 秒超時后被 SIGKILL 強殺SpringBoot 的優(yōu)雅停機、連接池關(guān)閉全都不執(zhí)行。這個坑在開發(fā)環(huán)境看不出來上了 Linux 跑久了才會發(fā)現(xiàn)每次重啟都丟在途請求。時區(qū)參數(shù)-Duser.timezoneAsia/Shanghai是我必加的。alpine 鏡像默認(rèn) UTC容器里new Date()出來的時間比北京時間少 8 小時日志時間戳全是錯的排查問題時能把人繞暈。alpine 里沒裝 tzdata所以配TZ環(huán)境變量沒用直接給 JVM 傳時區(qū)最省事。2.3 docker build 后面那個點以及鏡像命名和緩存構(gòu)建命令在 PowerShell 里執(zhí)行先cd到含Dockerfile的項目根目錄# -t 指定鏡像名和標(biāo)簽最后那個點代表當(dāng)前目錄作為構(gòu)建上下文 docker build -t demo-app:1.0.0 .那個.是最容易被忽略又最容易出事的地方。它把當(dāng)前目錄整個打包發(fā)給 Docker daemontarget里幾百兆的 jar、.git目錄、node_modules都會被送進(jìn)去構(gòu)建慢得像卡住。常見做法是在項目根目錄放一個.dockerignore.git .idea *.iml target/*.original logs/注意別把target/整個排除掉jar 就在里面COPY會直接失敗。-t demo-app:1.0.0的命名建議固定成“項目名:版本號”后面在 Linux 上docker save、docker load、docker run全程用這個名字版本號跟著pom.xml走。見過有人用docker build -t app .結(jié)果本地攢了七八個同名不同內(nèi)容的app:latest出問題時根本分不清跑的是哪個包這就是自找的。緩存問題也得提一句。COPY target/xxx.jar app.jar這一行只要 jar 內(nèi)容變了緩存就失效后面的層全部重建這是正常的。但如果改完代碼忘了mvn packageCOPY拿到的還是舊 jar構(gòu)建依然“成功”容器里的代碼卻是老的排查半天以為是環(huán)境問題。我一般把打包和構(gòu)建串成一條命令mvn clean package -DskipTests; if ($?) { docker build -t demo-app:1.0.0 . }if ($?)是 PowerShell 里判斷上一條命令是否成功打包失敗就不構(gòu)建省得拿著舊包騙自己。2.4 起容器、看日志、確認(rèn)端口映射# -d 后臺運行-p 宿主機端口:容器端口--name 給容器起個固定名字 docker run -d -p 8080:8080 --name demo-app demo-app:1.0.0 # 看容器是否還活著STATUS 里出現(xiàn) Up 才算數(shù) docker ps # 跟蹤日志出問題第一眼看這里 docker logs -f demo-app-p 8080:8080左邊是 Windows 宿主機端口右邊是容器內(nèi)端口右邊必須和 Dockerfile 里EXPOSE以及 SpringBoot 的server.port一致。左邊被占用是最常見的啟動失敗原因比如本機已經(jīng)跑了一個 Tomcat 或者另一個 SpringBootdocker run會直接報port is already allocated改左邊的端口就行比如-p 8081:8080。docker logs是這套環(huán)境的黑匣子。SpringBoot 啟動失敗都會在日志里留下痕跡UnknownHostException指向數(shù)據(jù)庫地址解析不了Access denied for user指向賬號密碼或授權(quán)范圍不對Communications link failure指向網(wǎng)絡(luò)不通。容器剛起來就退出的時候docker ps看不到它得用docker ps -a找再docker logs看退出原因。瀏覽器訪問http://localhost:8080能出頁面說明 Dockerfile、構(gòu)建、端口映射這三段路是通的。但頁面能出來不代表業(yè)務(wù)能跑只要涉及數(shù)據(jù)庫查詢下一步就得處理容器怎么連到 MySQL。3. 容器網(wǎng)絡(luò)與中間件dev_net、MySQL 8.0.24 和 Redis 怎么串起來Windows 上跑容器訪問本機數(shù)據(jù)庫是這套流程里最容易“看起來通了其實沒通”的一段。原文里試過--nethost也試過先 ping 再改配置我把順序重新理一遍順手把 MySQL 和 Redis 也容器化。3.1 默認(rèn) bridge 解析不了容器名dev_net 才行Docker 容器默認(rèn)掛在bridge網(wǎng)絡(luò)上這個默認(rèn)網(wǎng)絡(luò)只有 IP 轉(zhuǎn)發(fā)沒有內(nèi)嵌 DNS容器之間用容器名互相訪問會直接報UnknownHostException。自己docker network create出來的用戶自定義網(wǎng)絡(luò)才帶 DNS 解析容器名可以直接當(dāng)主機名用。# 創(chuàng)建一個自定義橋接網(wǎng)絡(luò)后面的應(yīng)用、MySQL、Redis 都接進(jìn)來 docker network create dev_net # 看網(wǎng)絡(luò)列表確認(rèn) dev_net 在里面 docker network ls接入用docker network connect容器跑起來之后也能接不用重建docker network connect dev_net mysqldoc docker network connect dev_net redis docker network connect dev_net demo-app應(yīng)用容器這一步經(jīng)常被漏掉。MySQL 和 Redis 都連上dev_net了應(yīng)用還在默認(rèn)bridge上照樣解析不了mysqldoc。三條connect一條都不能少接了之后用docker inspect驗一下# 只取容器在 dev_net 里的 IP有輸出說明接上了 docker inspect -f {{range $k, $v : .NetworkSettings.Networks}}{{$k}} {{$v.IPAddress}}{{end}} demo-app3.2 從容器里 ping 和 telnet 3306先判斷再改配置連不上數(shù)據(jù)庫時別急著改 yml先在容器里做兩步診斷。原始做法是從應(yīng)用容器 ping 數(shù)據(jù)庫容器或 IP再 telnet 3306 端口。# 容器內(nèi) ping 數(shù)據(jù)庫容器名驗證 DNS 解析和二層連通 docker exec -it demo-app ping mysqldoc # 容器內(nèi) telnet 數(shù)據(jù)庫端口驗證 TCP 層通不通 docker exec -it demo-app telnet mysqldoc 3306這里有個現(xiàn)實問題openjdk:8-jdk-alpine鏡像里既沒有ping也沒有telnet直接執(zhí)行會報not found。常見做法是臨時進(jìn)容器裝一個 busybox 擴展或者反過來從 MySQL 容器往應(yīng)用容器 ping因為mysql:8.0.24鏡像里通常有ping。更省事的做法是# 用自帶 bash 的容器做網(wǎng)絡(luò)探測把它接到同一個網(wǎng)絡(luò)里 docker run --rm --net dev_net busybox ping -c 2 mysqldoc--rm表示跑完即刪不留垃圾容器--net dev_net讓它和業(yè)務(wù)容器在同一個網(wǎng)絡(luò)里這樣測出來的結(jié)果才有參考價值。ping 通只說明網(wǎng)絡(luò)層沒問題3306 還得單獨驗端口沒監(jiān)聽或者 MySQL 沒起來ping 是通但 telnet 不通的。3.3 MySQL 8.0.24 容器化四個掛載目錄和 3307 端口Windows 上先建掛載目錄PowerShell 里一條mkdir可以帶多個路徑mkdir D:\development_sources\docker\mysql\log,D:\development_sources\docker\mysql\data,D:\development_sources\docker\mysql\conf,D:\development_sources\docker\mysql\mysql-files然后跑容器參數(shù)一個一個擺開docker run -p 3307:3306 --restartalways --name mysqldoc -v D:\development_sources\docker\mysql\log:/var/log/mysql -v D:\development_sources\docker\mysql\data:/var/lib/mysql -v D:\development_sources\docker\mysql\conf:/etc/mysql -v D:\development_sources\docker\mysql\mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORDroot -d mysql:8.0.24PowerShell 里的續(xù)行符是反引號別抄成 Linux 的反斜杠\抄錯了命令會被拆成幾條執(zhí)行報一堆莫名其妙的錯。參數(shù)作用取舍說明-p 3307:3306宿主機 3307 映射容器 3306本機已有 MySQL 占了 3306開發(fā)機這樣錯開最省事--restartalways容器異常退出或 Docker 重啟后自動拉起開發(fā)機也建議加省得每次開機手動 start--name mysqldoc固定容器名后面容器名要寫進(jìn) yml名字不能亂改-v .../log:/var/log/mysql日志落宿主機出問題直接在 Windows 上看日志文件-v .../data:/var/lib/mysql數(shù)據(jù)文件落宿主機容器刪了數(shù)據(jù)還在這條是命根子-v .../conf:/etc/mysql配置文件掛進(jìn)去想改my.cnf不用進(jìn)容器-v .../mysql-files:/var/lib/mysql-files導(dǎo)入導(dǎo)出目錄LOAD DATA之類操作要用-e MYSQL_ROOT_PASSWORDrootroot 初始密碼只在數(shù)據(jù)目錄為空、首次初始化時生效最后一條特別容易誤解MYSQL_ROOT_PASSWORD只在/var/lib/mysql為空、容器執(zhí)行初始化時讀取。掛載目錄里已經(jīng)有數(shù)據(jù)了改這個環(huán)境變量密碼不會變得進(jìn)容器用ALTER USER改。容器起來后用數(shù)據(jù)庫客戶端連127.0.0.1:3307驗證注意端口是 3307 不是 3306。業(yè)務(wù)賬號別直接用 root在容器里建一個限定來源的賬號# 進(jìn)入容器內(nèi)的 mysql 客戶端 docker exec -it mysqldoc mysql -uroot -p-- 應(yīng)用賬號只允許從任意容器來源連接密碼自己換掉 CREATE USER app_user% IDENTIFIED BY App123456; GRANT ALL PRIVILEGES ON app_db.* TO app_user%; FLUSH PRIVILEGES; -- 如果只允許某個固定 IP 來源把 % 換成具體地址 -- CREATE USER app_user192.168.0.27 IDENTIFIED BY App123456;MySQL 8 的默認(rèn)認(rèn)證插件是caching_sha2_password老的 JDBC 驅(qū)動連它會報Public Key Retrieval is not allowed所以后面 JDBC URL 里要帶allowPublicKeyRetrievaltrue或者把賬號改成mysql_native_password。這兩條路選一條別兩邊都改完再互相干擾。3.4 Redis 容器6380 端口、AOF 和密碼Redis 的部署結(jié)構(gòu)簡單得多一個數(shù)據(jù)目錄就夠mkdir D:\development_sources\docker\redis\data docker run -p 6380:6379 --restartalways --name redis -v D:\development_sources\docker\redis\data:/data -d redis redis-server --appendonly yes --requirepass redis-p 6380:6379同樣是為了避開宿主機已經(jīng)占用的 6379。--appendonly yes打開 AOF 持久化每條寫命令追加到文件容器重啟后數(shù)據(jù)能重建不打開的話重啟即清空開發(fā)環(huán)境丟點緩存無所謂但如果拿 Redis 存了業(yè)務(wù)狀態(tài)就會出事。--requirepass redis設(shè)密碼最后這幾個參數(shù)是傳給redis-server的命令行參數(shù)順序必須在鏡像名之后寫到鏡像名前面會被 Docker 當(dāng)成自己的參數(shù)而報錯。容器起來后docker network connect dev_net redis接進(jìn)同一個網(wǎng)絡(luò)再用 Redis 桌面客戶端連127.0.0.1:6380密碼填redis能PING出PONG就算通了。3.5 yml 里寫容器名還是 IP以及 --nethost 在 Windows 上的局限網(wǎng)絡(luò)通了之后改 SpringBoot 的配置文件host直接寫容器名spring: datasource: url: jdbc:mysql://mysqldoc:3306/app_db?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue username: app_user password: App123456 redis: host: redis port: 6379 password: redis兩個端口別寫錯容器內(nèi) MySQL 永遠(yuǎn)是 3306Redis 永遠(yuǎn)是 63793307和6380只是宿主機映射出去給 Windows 上的客戶端用的。在 yml 里寫成 3307容器之間是連不上的這個錯我見過不止一次。serverTimezoneAsia/Shanghai和前面 JVM 的時區(qū)參數(shù)是一套的兩邊都不寫插入的時間字段就會差 8 小時。useSSLfalse在開發(fā)環(huán)境關(guān)掉省事生產(chǎn)環(huán)境該開還得開。至于--nethost原文試過之后評價“意義不大”我補一下原因Windows 上的 Docker Desktop 跑在一層輕量虛擬機里--nethost共享的是那臺虛擬機的網(wǎng)絡(luò)棧不是 Windows 宿主機本身所以想靠它連 Windows 上的 MySQL大概率還是不通。Linux 上--nethost是真共享宿主機網(wǎng)絡(luò)行為完全不同??缙脚_部署時這個差異足夠讓人懷疑人生所以我的做法是統(tǒng)一走dev_net加容器名Windows 和 Linux 行為一致遷移的時候不用改配置。4. 避坑與排查容器起不來、連不上庫的五個現(xiàn)場下面五條都是我自己踩過或者幫別人收拾過的現(xiàn)場按“現(xiàn)象 → 原因 → 解決”記。4.1 構(gòu)建和啟動階段的三條第一條容器啟動幾秒就 Exiteddocker ps里看不到?,F(xiàn)象docker run回車后返回一串容器 IDdocker ps空空如也docker ps -a能看到狀態(tài)是Exited (1)。原因九成是 jar 路徑不對或者 jar 本身沒打出來。COPY在構(gòu)建階段就會失敗但如果是ENTRYPOINT里的路徑寫錯構(gòu)建能過運行時 java 找不到 jar 直接退出。解決先docker logs 容器名看最后幾行典型報錯是Error: Unable to access jarfile /app/app.jar。回到項目里ls target/*.jar確認(rèn)文件名再核對COPY的目標(biāo)名和ENTRYPOINT里的是否一致順便確認(rèn)mvn package真的執(zhí)行過別拿著空target目錄構(gòu)建。第二條改了代碼鏡像重建了容器里跑的還是老邏輯。現(xiàn)象接口返回的字段和本地代碼對不上日志里的時間戳也停在幾小時前。原因docker build用了緩存或者更常見的是打包那步漏了COPY復(fù)制進(jìn)去的就是舊 jar。Docker 只按文件內(nèi)容算哈希內(nèi)容沒變就復(fù)用緩存層它不會知道你改的是src里的 java 文件。解決養(yǎng)成mvn clean package再docker build的固定順序懷疑緩存問題時加--no-cachedocker build --no-cache -t demo-app:1.0.0 .--no-cache會把所有層重建慢但干凈。另外docker run前先docker rm -f demo-app刪舊容器不然--name沖突會直接報錯有人以為報錯就是構(gòu)建失敗其實只是名字被占了。第三條docker run報端口已被占用?,F(xiàn)象Bind for 0.0.0.0:8080 failed: port is already allocated。原因宿主機 8080 已經(jīng)被別的進(jìn)程或容器占著Windows 上常見的是另一份 SpringBoot 在 IDEA 里跑著沒關(guān)或者上次的容器沒刪干凈。解決netstat -ano | findstr :8080找到占用進(jìn)程該關(guān)的關(guān)掉不想關(guān)就換映射端口-p 8081:8080容器內(nèi)還是 8080對外訪問改成 8081 即可。別去改 Dockerfile 里的EXPOSE那是元數(shù)據(jù)改了也解決不了沖突。4.2 連庫和遷移階段的兩條第四條容器里訪問數(shù)據(jù)庫報UnknownHostException: mysqldoc?,F(xiàn)象應(yīng)用啟動日志里拋java.net.UnknownHostException或者Communications link failure但用數(shù)據(jù)庫客戶端從 Windows 連127.0.0.1:3307是好的。原因應(yīng)用容器和 MySQL 容器不在同一個用戶自定義網(wǎng)絡(luò)上默認(rèn)bridge沒有 DNS 解析容器名根本不是一個能解析的主機名。解決確認(rèn)三方都接進(jìn)了dev_netdocker network inspect dev_net看Containers里是不是三個容器都在。少哪個就docker network connect dev_net 名字補上然后重啟應(yīng)用容器讓 SpringBoot 重新解析。還有一種情況是 yml 里寫了容器的 IP容器重建后 IP 變了所以寫容器名、不寫 IP。第五條數(shù)據(jù)庫容器升級或者換機器后數(shù)據(jù)“沒了”。現(xiàn)象在 Windows 上跑得好好的庫換到 Linux 上重新docker run之后表全空只剩一個空庫。原因-v掛的是宿主機目錄換機器等于換了一個空目錄MySQL 發(fā)現(xiàn)/var/lib/mysql為空就重新初始化。容器本身不會隨鏡像帶走數(shù)據(jù)這點和鏡像完全兩回事。解決遷移前先mysqldump導(dǎo)出 SQL在新機器上起容器、建庫、導(dǎo)數(shù)據(jù)不要指望把 Windows 的數(shù)據(jù)目錄直接拷到 Linux 上能用——目錄里的文件屬主是容器內(nèi)的 mysql 用戶uid 通常是 999Linux 上權(quán)限對不上容器會起不來日志里一堆Permission denied。如果非要拷目錄得在新機器上chown -R 999:999對齊 uid還得處理 SELinux 上下文不如導(dǎo)出導(dǎo)入干凈。5. 遷移到 Linuxdocker save 打包 CentOS 7 裝 docker-ce-18.03.1.ceWindows 那邊驗證通過了接下來的活是把鏡像搬到 Linux。核心就三件事docker save出 tar、目標(biāo)機裝 Docker、docker load回來重跑。5.1 docker save 三個 tar應(yīng)用、MySQL、Redis鏡像必須一個一個存docker save一條命令只打包一個鏡像新版本可以帶多個鏡像名但老版本不行別賭# -o 指定輸出文件后面跟鏡像名:標(biāo)簽 docker save -o demo-app.tar demo-app:1.0.0 docker save -o mysqlimage.tar mysql:8.0.24 docker save -o myredisimage.tar redis三個 tar 都要存因為 Linux 上的 Docker 不保證能拉到完全一樣的鏡像尤其是沒有外網(wǎng)或者鏡像站抽風(fēng)的時候。文件大小心里要有數(shù)MySQL 8.0.24 的鏡像 tar 通常幾百兆應(yīng)用鏡像看依賴幾十兆到幾百兆。三個加起來超過 1G 很正常傳輸前先看目標(biāo)盤的剩余空間。鏡像名和標(biāo)簽要和 Linux 上docker run用的完全一致save的時候?qū)憁ysql:8.0.24load回來就還是mysql:8.0.24寫mysql不帶標(biāo)簽load 回來就是mysql:latest后面啟動腳本里的標(biāo)簽對不上容器起不來。這個細(xì)節(jié)我吃過虧現(xiàn)在 save 之前都先docker images抄一遍完整名字。還有一個跨架構(gòu)的注意點Windows 上的 Docker Desktop 默認(rèn)拉的是linux/amd64架構(gòu)的鏡像和 x86_64 的 CentOS 7 一致正常不會出問題。如果構(gòu)建機是 ARM 架構(gòu)就得在docker build時顯式指定--platform linux/amd64否則 load 到 Linux 上會報no matching manifest或者容器起來直接exec format error。5.2 CentOS 7 上裝 docker-ce-18.03.1.ce源、依賴、啟動Linux 側(cè)先確認(rèn)版本內(nèi)核 3.10 的 CentOS 7 是這套組合里最常見的底子uname -r # 3.10.0-1062.56.1.el7.x86_64遠(yuǎn)程連接工具隨便挑一個順手的 SSH 客戶端輸入 IP、端口、賬號密碼連上命令行和文件管理都在一個界面里后面?zhèn)?tar 包方便。開發(fā)環(huán)境為了省事經(jīng)常直接關(guān)防火墻生產(chǎn)環(huán)境千萬別這么干# 關(guān)閉防火墻并禁用開機自啟僅限內(nèi)網(wǎng)開發(fā)環(huán)境 systemctl stop firewalld systemctl disable firewalld裝 Docker 之前先把舊版本清干凈CentOS 7 上有些老包會互相干擾# 卸載可能存在的舊版本沒裝過會提示 nothing to do正常 yum remove docker docker-common docker-selinux docker-engine # yum-utils 提供 yum-config-manager另外兩個是存儲驅(qū)動依賴 yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加 docker-ce 的 yum 源地址換成你環(huán)境能訪問的鏡像站 yum-config-manager --add-repo http://你的鏡像站地址/docker-ce/linux/centos/docker-ce.repo # 列出可安裝版本從高到低排序 yum list docker-ce --showduplicates | sort -r # 安裝指定版本這是我們這套環(huán)境驗證過的版本 yum -y install docker-ce-18.03.1.ce版本這里要留意 yum 包名的完整形式實際的包名通常是docker-ce-18.03.1.ce-1.el7.centosyum install docker-ce-18.03.1.ce能匹配到就可以匹配不到就用yum list輸出里的全名。18.03 這個版本比較老好處是和舊內(nèi)核、舊鏡像兼容性好壞處是有些新鏡像的 manifest 格式它不認(rèn)。如果docker load時報格式相關(guān)的錯不要硬扛記下報錯信息確認(rèn)鏡像能在更新的 Docker 上 load 成功再決定要不要升版本。裝完啟動并設(shè)開機自啟systemctl start docker systemctl enable docker # 確認(rèn)版本Client 和 Server 兩段都要有輸出 docker versionCentOS 7 上默認(rèn)存儲驅(qū)動可能是devicemapper性能和穩(wěn)定性都不如overlay2。內(nèi)核 3.10 是支持 overlay2 的建議顯式寫進(jìn)配置{ storage-driver: overlay2, log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 } }把這段寫進(jìn)/etc/docker/daemon.json然后systemctl restart docker。日志限制那兩行是后悔藥不加的話容器日志會把磁盤寫滿等到no space left on device的時候服務(wù)已經(jīng)掛了。改完存儲驅(qū)動如果起不來先docker info | grep -i storage看實際生效的驅(qū)動必要時把/var/lib/docker清空重來——前提是沒有重要鏡像所以這一步要在 load 之前做。5.3 上傳 tar 包、load 鏡像、按 Linux 的路徑重跑容器用 SSH 客戶端的文件管理把三個 tar 傳到 Linux 的自定義目錄比如/opt/loadimages然后逐個加載cd /opt/loadimages # -i 指定輸入文件執(zhí)行完 docker images 能看到鏡像 docker load -i demo-app.tar docker load -i mysqlimage.tar docker load -i myredisimage.tar # 確認(rèn)三個鏡像都在標(biāo)簽對得上 docker imagesdocker load可能輸出Loaded image: demo-app:1.0.0也可能只輸出層 ID 的進(jìn)度最后以docker images的結(jié)果為準(zhǔn)。容器要按 Linux 的路徑重跑不能照抄 Windows 的D:\...。先建目錄mkdir -p /data/docker/mysql/{log,data,conf,mysql-files} mkdir -p /data/docker/redis/dataMySQL 和 Redis 的啟動命令除了掛載路徑其余參數(shù)和 Windows 上保持一致docker network create dev_net docker run -p 3307:3306 --restartalways --name mysqldoc \ -v /data/docker/mysql/log:/var/log/mysql \ -v /data/docker/mysql/data:/var/lib/mysql \ -v /data/docker/mysql/conf:/etc/mysql \ -v /data/docker/mysql/mysql-files:/var/lib/mysql-files \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:8.0.24 docker run -p 6380:6379 --restartalways --name redis \ -v /data/docker/redis/data:/data \ -d redis redis-server --appendonly yes --requirepass redis docker run -d -p 8080:8080 --name demo-app demo-app:1.0.0 docker network connect dev_net mysqldoc docker network connect dev_net redis docker network connect dev_net demo-app順序上先把中間件起好再起應(yīng)用不然應(yīng)用啟動時連不上數(shù)據(jù)庫SpringBoot 可能直接啟動失敗。數(shù)據(jù)從 Windows 遷過來的話用mysqldump導(dǎo)出的 SQL 在新容器里source一遍別直接拷數(shù)據(jù)目錄。5.4 SELinux 和目錄權(quán)限CentOS 上特有的兩個坑CentOS 7 默認(rèn)開著 SELinux-v掛載宿主機目錄時容器進(jìn)程可能沒有寫權(quán)限表現(xiàn)是 MySQL 容器啟動失敗日志里Cant create/write to file或者Permission denied。開發(fā)環(huán)境圖省事可以臨時關(guān)掉# 查看當(dāng)前狀態(tài)Enforcing 表示開著 getenforce # 臨時切成寬松模式重啟后恢復(fù) setenforce 0更規(guī)范的做法是在掛載參數(shù)后面加:z或:Z讓 Docker 自動打上 SELinux 標(biāo)簽比如-v /data/docker/mysql/data:/var/lib/mysql:z。兩種做法選一種別同時上否則排查時根本分不清是哪個改動起的作用。權(quán)限本身也要看一眼/data/docker/mysql/data如果被 root 提前占成 700容器內(nèi)的 mysql 用戶寫不進(jìn)去同樣起不來。chown -R 999:999 /data/docker/mysql/data把屬主對齊到容器內(nèi)的 mysql uid這是mysql:8.0.24鏡像里的固定值。6. 驗收load 之后用三條命令確認(rèn)容器真的在跑最后這步是我現(xiàn)在每次遷移必走的幾分鐘就能把“看起來起來了”和“真的能對外服務(wù)”區(qū)分開。第一步看容器狀態(tài)三個容器都得是Up重啟次數(shù)是 0docker ps --format table {{.Names}}\t{{.Status}}\t{{.Ports}}第二步驗端口和服務(wù)。從 Linux 本機curl應(yīng)用首頁curl不通就先看容器日志別急著改配置# 應(yīng)用返回 200 或者一段 HTML 才算數(shù) curl -I http://127.0.0.1:8080 # 日志只取最后 50 行重點找 Started Application 和異常堆棧 docker logs --tail 50 demo-app # 從應(yīng)用容器反向驗證數(shù)據(jù)庫端口能連上會打印 Open 或空行后掛住 docker exec -it demo-app sh -c nc -zv mysqldoc 3306nc在 alpine 里通??捎貌恍芯陀胮ing加docker exec -it mysqldoc mysql -uroot -p -e select 1從數(shù)據(jù)庫側(cè)驗證。第三步是最容易被跳過、也最能暴露問題的一步跑一次真實的讀寫。打開一個涉及數(shù)據(jù)庫查詢的頁面或者調(diào)一個寫接口然后去數(shù)據(jù)庫里select一下確認(rèn)數(shù)據(jù)落庫了再往 Redis 里寫一個 key用客戶端查出來。只驗證首頁能打開是不夠的首頁往往是靜態(tài)的連接池根本沒被觸發(fā)。驗證項命令或動作通過標(biāo)準(zhǔn)容器存活docker ps三個容器 Up重啟次數(shù) 0應(yīng)用可達(dá)curl -I http://127.0.0.1:8080返回 200 或 3xx數(shù)據(jù)庫連通頁面觸發(fā)查詢返回數(shù)據(jù)無Connection refused數(shù)據(jù)落盤寫接口后查庫數(shù)據(jù)能查到容器重啟后還在Redis 連通寫 key 后用客戶端讀讀得到值PING返回PONG開機自啟重啟機器后docker ps三個容器自動起來那次在 CentOS 上 load 完鏡像、docker ps三個容器全是 Up、首頁也能打開我直接跟人說好了結(jié)果業(yè)務(wù)同事一點查詢就報錯——yml里還寫著 Windows 上那個127.0.0.1:3307容器里根本沒有這個地址。從那以后我每次遷移完都強制走一遍“容器狀態(tài) → 端口連通 → 真實讀寫”這套動作一步都不跳。希望這套流程能幫到你少在黑匣子日志里繞幾圈。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚欧免费| 欧美一级久久久久久久大片动画 | 女人天堂av在线播放| 欧美爱国产综合、| 国产亚洲禁久一区二区| 亚洲婷婷综合网| 精品久久久无码| 三级特黄60分钟播放| 四虎午夜影院| 嫩草 我啊~嗯~在线| 中国一级操逼视频| 日本性交操一区二区不卡系列| 欧美综合97www| 欧美日韩资源| 欧美亚洲成人在线一区二区三区| 中文字幕在线日亚洲9| 97碰久久| 91网站视频在线观看| 一级黄色性爱A级片| 成人精品欧洲亚洲| 99色色| 欧美色偷偷| 色诱avtt| 久久性爱视频| 日韩性爱高清免费视频| 欧州一区二区三区四区| 天天综合网久久ww| 国产高清MV操逼视频| 久操电影网| 97精品国产97久久久久久免费| 亚洲一区二区三区中文字幕| 九九亚洲| 日日夜夜精品视频| 在线a亚洲视频播放在线| 欧美日韩大陆黑人少妇99| 欧美黄色大香蕉一区二区| 国产精品久久久久久久久久久久久久吹 | 国产精品肉丝自拍| 欧美极度丰满熟妇hd| 国内外内射高清视频| 男人天堂导航| 天天爱天天操| 久久这里只精品| 99久久久| 久久精品店| 国产精品不卡少妇白| 东京热一区二区三区四区五区六区| 被体育老师抱着c到高潮| 免费一级特黄特色大片在线观看看| 91模特在线观看| 91国产大片| 9久久精品| 亚洲av无码国产精品字幕| 成人夜夜| 成人性交午夜免费片| 999久久久久久久久| 淫荡网址| 亚洲欧洲日韩天堂av| 91老熟女视频| 国产精品嫩草影院免费| 色婷婷丁香五月| 717影院理论午夜伦八戒| 亚洲综合激情五月久久| 99在线观看| 中文字幕123| 久久永久无码人妻视频| se吧提供国产乱老熟视频胖女人 | 久久久久免费少妇| 欧美色五月| 亚洲天天艹| 东京热免费视频| 极品色社| 青青伊人加勒比海| 天天狂操夜夜狂日| 亚洲欧美在线观看免费| 免费啊啊啊| 少妇三P| 日韩99999| 久久中文字幕人妻熟av女蜜柚| 天堂综合网| 强奸乱伦AV网址| 亚洲影院无码在线| 开心五月婷婷激情| 超碰 av 女人天堂| jiujiujiujingpin| 久久久96| 国产熟女少妇一区| 97资源站国产精品| 国产尹人在线视频免费| 天天内射| 国产a片操逼| 国产热RE99久久6国产精品首| 偷拍网站久久男女男| 欧美96交| 嗯嗯啊啊操我| 婷婷五月激情综合| 搡老女人老91妇女熟女| 搡老女人老熟女91老熟女综合网| 国精精品无码一二三区水多多| 一区二区三区 丝袜 高跟 美腿| 性生活无遮挡纯毛片在线看| 欧美97在线欧| 色五月激情综合网| 婷婷精品国产欧美精品亚洲人人爽| 九九九精品一区二区无码| 91性感在线| 日韩A优精品在线观看| 啪啪91| 偷偷人人精品女女久久| 操逼不卡中文字幕| 黄网站黄视频网站进入口| 久久久亚洲熟妇熟女| 久久 国产精品 一区| 天天躁狠狠躁av| 日本精品无码三级网站| 加勒比海成人视频网| 夜夜嗨一区二区三区三州加勒比| 在线A日本| 老熟妇一区二区三区啪啪| 吖在线不卡一区二区国产剧情| 艳美熟妇先锋一二三区| 99精品国产户外露出| 麻豆久久久一区二区| AV丝袜少妇| 精品国产91内射久久| 116美女午夜| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 国产成人网址| 97久久国产| 少妇二级| 国产区日韩区在线观看| 99热精品国产| 欧美疯狂做爰xxxx| 99999精品| 亚洲少妇色| 久久久久亚洲熟妇熟女| 欧美78| 97这里只有精品| 2010男人的天堂| 天美传媒AV在线| 激情网五月天| 日韩兔费看黄片| 亚洲综合码| av爱爱爱| 99精品综合久久久久五月天| 日本片日本片祼观看网站在线看中文版网页在线看 | 天天影视91看看| 婷婷五月天网| www.亚洲黄色| 加勒比综合a∨| 五月丁香综合| 黄片qw| 内射中国少妇高清视频免费视频| 人人操人人摸人 | 久久永久无码人妻视频| 96久久久精品| 日韩欧亚太美不卡| 2017人人操,人人摸| 啊啊啊啊啊好舒服视频| 国产有码一区| 日韩免费看黄片| 亚洲本色精品一区二区久久| 久草线上视频免费看| 日韩免费人妻色情网站| 入口操逼网站| 亚洲中文字幕精品一区| 97色欧洲| 夜夜福利| 久草在| 日韩久久三区| 久草五月| 亚洲无码久久久久久久| 国产中出内射一区二区| 97干97色| 五月丁香激情四射| 伊人嫩草| 欧美午夜色妇色鬼| 天美国产精品| 久久曰曰| 丰满少妇乱子伦精品无| 国产最火爆久久国产网站网站| 四虎影视 亚洲无码| 欧美精品三区| 婷婷色网| 日本一区99| 夜夜爽77777| 熟女突然公开看18禁影片| 一本色道综合久久欧美| 国产亚洲精品A在线观看下载| 97爱爱官网| 大香网伊人久久综合网eew| 亚洲麻豆精品二区三区| 色婷视频| 色欲天天综合网| 免费簧片在线观看| 伊人久久大香线蕉无码| 无码精品久久| 亚洲人妻中文在线视频| 麻豆天美91| 久操视频在线| 久久久久极品| 91激情国产| 天美一区在线| 国产日韩美女小穴视频网站不卡| 色香91| 亚洲区限制级| 福利一级版子| 国内一级精品| 亚洲天堂男人网| 大香蕉懂9| 久久久久久人| 亚州91| 天天综合97| 亚洲欧美综合| 青青免费在线视频一区| 1769国内精品视频| 人妻少妇被猛烈进入中| 国产欧美亚洲精品a第2页| 精品国产乱码久久久久久口爆网站| 97手机日韩| 久久久久9999| 亚洲中文字幕精品一区| 中文字幕五月婷婷免费| 天天色天天干天天射| 青娱乐国产盛宴视频| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 蜜臀久久久99久久久久| 在线午夜成人无码视频| 骚货操死你| 国产91亚洲精品一区二区三区| 成人av在线播放| 久久精品中文字幕观看| 婷婷成人五月天| 中文字幕视频在线观看一区二区| 天天操综合网| AV天堂男人的天堂| 操一对老熟妇爽上天视频| 九热久| 中文字幕在线免费观看2| 一二三四视频中文字幕在线看| 国产av波波国产精品| 8050无码八戒| 国产精品电影推荐| 精品1区2区3区| 亚洲一区日韩精品| 97色婷| 91 国产丝袜在线放观看| 少妇一区二区三区在线观看| 九99久久| а√天堂资源官网在线资源| 91人妻Pr| 亚洲欧洲无码97久久精品| 色777999综合| 精品久久久久久AV无码| 亚洲精品乱码久久久久久蜜桃麻豆 | 少妇二级| 欧美色道啊| 97色碰| 牛牛aV| 97在线免费看| 日1区2区3区2020| 人人操人人色人人摸| 8050无码八戒| 欧美少妇色综合| 欧美色999| 亚洲欧美国产日本一区二区三区| 国产精品久久久久久久久久久久久久久久久久| 欧美天天影院| 先锋色眉乱伦资源| 亚洲s在线观看| 欧美在线干| 一区操逼| 国产亚卅97| 中文字幕后石码四区五区| 91操人| 丝袜喷水在线| 欧美人与动性人交a| 另类天堂| 97中文字幕一区| 日韩激情中文字幕有码| 美欧老女人97| 小说区 图片区色 综合区| 国产女人成人精品视频| 色妇91| 亚洲黄色视频在线观看视频| 九九热精品免费视频| 亚洲欧美洲综合| 最新日产中文在线麻豆| 国产精品一二三| 欧美日本中字另类在线| 国产人妻精品一区二区三区秋霞 | 欧美性巨大╳╳╳╳╳高跟鞋| 九月AV| 久久精品国产精品一区| 日韩欧亚太美不卡| 国产精品99精品视频网站| 91人妻超碰| 无码一区免费在线不卡| 神马午夜久久久| 国产精品福利资源在线尤物| 人人污日韩一区二区| 色综合av综合久久| 欧美青青视频| 欧美啪啪女女| 亚欧洲日韩国产精品| 亚洲欧美精品一区天堂久久| 爱爱动态60秒| 久久久国产护士丝袜美腿一| 最近的最新的中文字幕视频| 国产成人精品网站| 欧美专利1区2区3区4区5区免费| 91香蕉国产尤物视频| 一区二区三区国产精产| 黄骗免费| 十八禁黄色| 极品色社| 17c在线成人免费A片观看| 欧美天堂超碰97| 久草网站免费在线观看| 91色婷婷综合久久中文字幕二区| 中文字幕超碰CAO| 久操视频资源站公开| 国语精品对白| 久久av色| 中国亚洲呦女专区| 欧洲性爱无码区| 一区二区视频你懂的| 欧美综合区| 久久久96| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 色999亚洲人成色| 亚洲综合首页| 亚洲男人综合网| 日日夜夜干| 人人玩人人添人人澡免费| 久久97超碰香蕉| 久青草影院| 黄片qw| 久久久久国色αv免费观看| 四虎影库国产精品免费| 日本岛国黄色网址| 午夜乱轮操逼视频免费看| 99热在线只有精品| 日本99一区二区| 欧美一区二区亚洲天堂| 日韩 欧美 另类 人妻| 在线中文字幕视频| 国产精品一级二级在线| 99国产精品在线观看| 91强热人妻| 亚洲 无码 偷拍| 九九九九热只有精品| 九热大香蕉| 综合色图区| 久久无码电影| 四虎国产精品永久地址入口| 亚欧色图在线激情| 人妻丝袜日本| 超碰色大香蕉| 黄久久| 日日干夜夜欢| 日本高清加勒比| 欧美精品丝袜久久久中文字幕| 亚洲精品亚洲人成人网| 国产av美女被艹的乱叫| 福利社区午夜一区二区| 青青草公开在线免费不卡视频| 中文字幕一区二区免费在线| 久久精品亚洲婷婷| 99久久综合网| 粉嫩不卡一区二区性爱| 日韩性爱毛片操骚逼| 国产97在线视频| 骚熟女AV网| ...日韩成人一区二区三区字幕| 亚洲AV免费在线观看| 日韩午夜啪啪视频| 婬女免费一二三区A片| 国产自产一区视频在线| 天堂无码精品国产久| 无码人妻一区二区三区色欲aⅴ| 男同专区一区二区三区在线| 久久久啊啊啊| 亚洲自拍97| 精品对白久久不卡| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 色牛牛AV| 伊人色综合网| 亚洲精品久久久久久久久豆丁网| 3571色综合一区二区二区| 深爱五月天| 天天综合91在线| 欧美乱色| 欧美天天谢综合网| 欧美色图人妻| 伊香蕉综合久久久久久久噜噜噜| 免费试看60秒| 蜜乳成人AV| 国产精品69人妻无码久久久| 九九aV| 屌逼麻豆| 中文乱码99| 国产视频小说| 国产三级片在线观看| 天天综合~91| 精品毛片av一区二区| 333kkkk·亚洲com久久| 色五月婷婷五月天| 夜夜综合| 超碰97综合在线| 麻豆久久一区二区三区| 日本三级一区二区 在线| 另类 日韩 熟女| 六月色婷婷| 99国产在线绯色一区| 亚洲一区二区 麻豆传媒| 嫩草91| 欧美色图20p| 色操逼网| 色五月激情网| 97超碰免费人人性爱| 成人精品久久| 2020中文在线一区二区三区| 99视频在线| 好吊色一区| 亚洲素人综合| 欧美极品美女aaaaaa级黄片| 国产精品老师| 国产欧洲精品亚洲午夜拍精品| 久夜操| 尤物黄色在线观看网站| 狠狠中文字幕| 国产亚热在线久久| 亚洲性爱电影| 无码99| 欧美瑟综合| 国产欧美精选激情视频| 91女人的网站| 9Ⅰ超碰| 国产精品激情久久久久久久| 日本精品88888888| 91色综合| 久久精品国产精品亚洲艾通辽熟妇| 东北女人操比视频| 午夜视频久久久久一区| 国产精品乱人伊人网| 亚洲做性| 欧美性爱一级操| 久久国99999| yiqicaoav| 涩五月婷婷| 亚洲怡春院| www.av在线视频| 亚洲91亚洲| 狠狠超| 99在线免费视频| 四虎影视 亚洲无码| 国产精品蜜乳AV| 97频视在线| 欧美18 在线观看| 欧洲无码一区二区| 搡老熟女免费视频| 夜夜高潮夜夜爽高清视频一 | 日韩少妇一区二区三区| 曰韩香蕉97| 国产精品干干干| 亚洲大色堂| 夜夜操美女| 超碰午夜在线| 国产精品视频自拍在线| 蜜臀AV成人精品蜜臀| av毛片aaaaa免费看| 校园春色之综合网| A 天堂| 黄色小说亚洲| 操B视频日韩无码| 九X超碰| 成人乱人伦一区二区| 亚洲激情色片| 日本欧美亚洲高清在线看| 97精品国产精品免费观看| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 四虎影视 亚洲无码| 强免费黄色网址| 女生看匆91网站| 久久午夜伦| 亚欧免费观看视频| 日本中文字幕一区| 黄色av一区二区在线| 精品夜夜澡人妻无码AV| 五月天春色激情网| 中日亚韩免费视频| 久伊人网78| 91久久久久久久久久久| 第四色奇米影视777| 韩国嫰模上门援交视频| 97人人干| 亚瑟国产精品久久无码| 欧美人妖内射| 欧美 中文字幕 一区| 天天草夜夜草高潮片| 天天搞欧美| 粉嫩国产精品久久粉嫩| 翔田千里一区二区三区奶水| 啊啊啊啊,啊啊好多水| 夜夜中出国产| 免费一级特黄特色大片在线观看看| 啊啊啊 在线| 九九热免费国产视频婷婷伊人五月 | 国语av狠狠色丁香婷婷综合激情| a人片中文字幕一区二区| 五月婷丁香| 少妇无码av专区线| 国产深夜福利| 99精品丰满人妻无码| 久悠悠av| 最新国产精品久久精品| 精品中文字幕第一页| 男女啊啊啊| 欧洲精品久久| 久久久久密| 精品超碰国产| 人妻 中文 日韩| 东北毛片| 久久久久成人网| 综合网97| 国产高清不卡视频| 99热免费| 五月婷婷激情网| 久久性爱大全| 国产精品999zyz| 大象AV在线| 亚洲人妻色图| 亚洲乱熟女一区二区| 欧州激情视频在线一区二区| 91亚·色| 开心五月激情网| 亚洲精品中文字幕一区在线视频 | 狠狠爱综合| 玖玖资源综合在线视频| 国产高清免费不卡av| 成人国产视频在线观看| 麻豆视频一区二区| 躁躁躁日日躁2020| 伦理第一页| 国产又粗又长的视频| 日韩丨制服丨中文|在线| 人人超碰在线观看黄| 一区黄二区黄| 嗯嗯嗯,草死我| 日韩三四五区| 色哟哟国产精品免费网址| 日日狠狠久久偷偷色综合免费| 新版天堂中文资源8在线| 操逼逼福利视频| 国产区性爱在线视频秋霞豆| 欧美黄片欧美黄片xxx| 欧美日韩激情无码专区| 日韩欧美国产一区二区三区四区| 久久黄色性爱视频| 日韩不卡a级视频专区| 粉嫩av在线一区二区| 无码日韩人妻av一| 5278欧美一区二区三区| www色婷婷| 99热| 99热在线不卡| 日韩精品国模| 新怡红院| 九九九九热| 伊人网青青| 无码逼| 日本精品不卡一二三区| 中文字幕在线观看视频www| 亚洲丝袜二区| n1038 一二三区| 97日视频| 中文字幕免费在线观看| 免费一二区| 国产色综合亚洲色综合吹潮| 日韩卡一卡二卡三在线| 超碰人人色| 狼人综合婷婷激情四射 | 国产乱色国产精品免费视| 十八禁的黄污污免费网站| 日本国产成人亚洲精品无码| 日韩精品一二三四| 热久久99999| 激情情色五月天| 中文字幕精品码亚洲| 无码操逼视频一下| 伊人女女资源在线观看| 亚洲有薄码区日本系列中文字幕| 在线观看A啊啊啊| WWW美腿丝袜香蕉中文| 欧美日韩狠狠爱| 亚洲A曰本VA欧美VA视频| 强奸乱伦大香蕉网| 日本不卡高清免v欧美日韩在线观看| 日韩人妻无码精品系列| 无码粉嫩白虎一线天b区| 久久精品福利影院| 日本久久精品| 麻豆精品三区视频| 亚洲男人天堂网| 日韩一区二区三区四区五区| 国产怡红院| 97精品人妻一二三四| 思思热在线视频免费| 亚洲制服欧美另类内射| 亚洲大色堂| 五十路三区在线| 欧亚乱色熟女一区二区| 视频在线观看一二三区| 久操免费电影| 无码日韩人妻av一| 少妇人妻精品| 密乳视频在线| 天天干天天干天天干| 色眯眯av| 9国产超碰| 欧苏综合色综合| 啊啊啊操死我了| 日韩精品碰碰| 日夜干射色啊| 26uuu成人影片| 日韩精品一区二区三区四虎影视| 免费精品AB| 思思热er精品视频| 中文字幕人乱码中文字的预防方法| 97色碰| 夜夜操2028| 欧美亚洲丝袜人妻制服中文99| 亚洲美女自拍偷拍视频| 色天欧美| 国产亚洲精品美女久久久久久2021| 艾草av| 视频一区二区免费在线| 久操B网| 香蕉综合网| 99热免费| 1240青青草一区二区三区视频天爱| 色综合尤物| 疯操AV| 亚洲四虎熟女精品| 噜噜噜噜天天狠狠| 97色色婷婷| 精品人妻一区二区三区不卡断| 极品极品色影院| 一本大道青青| 欧美后进式| 国产日韩久久| 香一区二区三区| 午夜福利国产欧美日韩夜夜| 国产精品。| 91艹B视频| 伊人视频| 五月色综合| 蜜臀久久99精品久久久久| 久操高青| 95自拍视频在线观看| 中文字幕av丝袜| 人妻乱仑一区二区三区| 日韩内| 久久女人视频| 一本精品日本在线视频精品| 啊啊啊啊啊啊啊啊啊在线观看| 国产尤物AV尤物在线观看不卡| 亚洲色棕合| 91N欧美| 69少妇一区二区| 久久久精| ss久久| 日本一区二区三区四区免费观看| 78m成人视线| julia在线观看久久| 人人看人人爰人人操| rivers-china.com| 精品人妻二区三区| 玖玖爱免费观看视频| 欧美激情区| 欧美老妇女内射网址| 亚洲超碰AV| 91色综合| 91AV国产精品| 不卡码视频| 免费A V在线| 国产精品一二三区18| 中国的操老妇女| 精品人人| 在线性黄高清免费视频| 91久久久亚洲| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 日本色日夜干| 亚洲一区制服诱惑| 亚洲人成色9999精品久久| 影音先锋视频在线| 久久夜夜| 熟女少妇一区二区三区| www.AV有限公司一区| 五月天婷婷成人网| 乱伦av国产| 69XX一中文字幕人妻91| 久久久久女教师免费一区| 欧美日韩婷婷中文| 国产精品青青草| 国产AV久久久蜜爱影集| 秋霞成人一级在线观看| 91老熟女| 国产免费内射视频| 加勒比久久av| SUV一区二区在线看| 强奸少妇AV导航网| 一区二区 韩日AV| 久久草在线综合视频| 欧美丰满少妇xx高潮| 亚洲国产丝袜熟女av| 日韩91网| 亚洲性综合11| 欧美91久久久久| 欲射影视| 啊啊啊啊二区好大| 红桃视频高潮| 久久久99久9| 花野真衣| 欧美色三级片91| www久久99| 欧美日韩中文亚洲v在线综合| 国产高清精品一区二区三区毛片 | 久久久中文| 一区二区三区精品视频| 亚洲av淫乱| 婷婷五月天激情网| 亚洲一区二区三区欧美日韩| 青草青草久热| 岛国黄色大片网站| 中文字幕日本久久| 中字乱伦AV| 99啪啪| 99亚洲精品| 极品五月天噜噜| 男人天堂站| 第45页一区二区| 麻豆福利视频导航| 亚洲少妇激情视频| 亚洲天天影视色综合| 夜夜夜夜爽| 精品无av| 97干97色| 国产操逼视频在线观看| 变态乱伦伪娘灌肠一区二区| 精品人妻av在线播放| 在线人人人人人人精品超| 亚欧高清在线| 久久草草欧美精品| 欧美最婬乱婬爆婬性视频 | 成人性爱视频在线看| 国产三级中文有码在线视频| 伊人久久大香大香线蕉中文| 26uuu国产| 伊人综合色网| 久久亚洲熟妇在线视频| 碰人碰碰人人开房人肉| 欧美激情在线观看视频| 一区在线精品中文字幕| 另类小说综合网| 91精品伊人久久久大香线蕉91| 欧美在线视频99| 欧美狠狠操| 欧美综合 站| 亚洲色交| 18禁免费视频| 天天爽天天| 亚洲熟女乱熟乱熟妇综合网二区| 男人的天堂日韩| 超碰97人妻在线| 日本丝袜人妻内射| 男人的天堂2019AV| 亚洲天堂日本| 一起草视频在线| 国产精品美女在线一区| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久欧美性爱视频| 观看视频图片一区二区三区| 韩国毛片一区二区三区| 色激情综合网站| 超碰成人最新最好看| 国产最新AV| 国产亚热在线久久| 久久久久亚洲熟妇熟女| 日韩无码专区| 97资源免费视频| 精品九九| 91超碰人人操| 麻豆精品三区视频| 新亚洲无码| 色5月婷婷| 亚洲性综合| 免费A片三p视频| 天天日天天插| 超碰97人人乐| 免费亚洲黄色视频在线观看| 中文字幕精品丝袜| 欧美成人精品欧美一级乱黄一区二… | 婷婷色在线| 亚洲91综合| 国产日逼视频| 亚洲男人的天堂一区二区| 天天影视综合色| 成人八戒网站| 动漫区日韩区欧美区| 超碰97久久| 午夜天堂精品久久久久91| 男人天堂网手机版婷婷| 欧美日日操| 久久久久久91香蕉国产| 免费a v| 爽爽淫人网| 少妇色欲综合网2| 国产亚洲日本精品在线| 精品中文日韩字幕视频| 26uuu性| 精品一区二区麻豆| 日韩 国产 欧美自拍| 91精品电影18| 91无码西班牙视频在线| 国产剧情一区在线观看| 久久久青青草| 色色五月婷婷| 久久久久99精品成人片蜜臀| 色婷婷久久| 在线二区不卡| 少妇超碰在线| 好爽视频在线观看视频| 日本 成 人 小说 电影 一区二区| 清纯唯美第一页| 婷婷尹人大香蕉免费| 久久精品超碰| 天天日老熟妇| 亚洲欧洲中文日韩女优乱码| 午夜成人福利影视| gogogo免费高清看中国国语| 久久久久一本一区二区青青蜜月| 操操操五月天婷婷丁香影院| 天天看人人操屄犊摸阴| 亚洲精品国产无码高清| 国产偷人妻精品一区二区在线| 亚一综合久久久久久久久久| www.av不卡中文字幕| 成人性爱电影一区二区| 成人小电影网站tex| 日韩AV一区二区三区四四| 国产精品96| 插老姨肥穴| 99精品久久久久久久婷婷| 大白逼三四级| 天堂精品在线| 欧美精品精品一区二区| 99蜜桃臀亚洲成人在线观看| 1024人妻熟女一区二区三区| 亚洲久久天堂| 日韩内射视频| 色官网色综合| 久久久一区二区三区麻豆| 综合色图亚洲欧美| 久艾草在线精品视频在线观看| 亚洲资源网| 天天插天天插| 欧美五十路熟| 青青草原av| 在线天堂999| 强奸乱伦中文字幕AV| 亚91网| 精产国品一区二三产品| 丁香六月东京热| 中文字幕99999| 亚洲Av噜噜一区二区三区妖精| www网站黄| 呦呦影院| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产怡红院| 色噜噜精品一区二区三| 久久青青草在线视频| 熟妇高潮精品一区二区三区下载| 性一交一乱一交A片久久四色| 欧美日韩*字幕一区| 又黄又硬又粗又长国产视频| 10000部十八禁看电影| 国产精品老师| 思思热久久成人| 91精品91久久久中77777| 夜夜爽爽夜夜精品视频| 欧美老熟另类| 久久久com| 国产精品点击进入在线影院| 亚洲高清自拍| 精品二区三四区五电影 | 91人妻素女| 欧美精品久久96人妻无码| 久久9免费视频| 亚洲情色在线| 99久久这里只有精品| 在线啊v一区| 无码人妻精品一区二区中文| 人妻久久一区二区三区 | 伊人久久婷婷| 色综合久久88色综合久久天天| 无码不卡亚洲成?人片| 激情小说激情视频| 啊啊啊好疼| 自拍欧美| sss视频华人在线| 天天综合精品| 激情五月天色色| 牛黄色久午久| α√在线| 国产亚洲精品美女久久久m| 日日躁夜夜躁狠狠躁超爽| 中国一区二区亚洲人妻| 欧美精品自慰系列寂寞少妇 | 亚洲综合另类| 岛国毛片在线观看免费| 97视频在线免费观看| 99久久99九九99九九九| 亚洲日精品| 久久久久久中文| 日韩高清一二三| 97超碰总站| 少妇内射视频| 长久操视频| 97bbn| 无码视频一区二区| 97日视频| 天堂伊人久久| 精品999日本| 亚洲精品国产av天美传媒| 一区二区三区无卡视频在线观看| 久久国产视频专区一二三| 男人的天堂成人的社区| 97大色网| 做爱福利视频一区二区| 国产女人9999| 日韩 女同 综合| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 超碰97综合网| 亚洲综合网91| 操东北女人| 中文字幕日韩专区精品系列| 亚洲 日本 国产 综合| 一区操逼日比视频| 抽插无码高清一区| 天天操夜夜操| 日本不卡三级网在线播放| 91夜夜蜜桃臀1区2区3区| 欲射影视| 欧美色图亚洲色,麻豆| 男人天堂新在线| 亚洲色婷婷久久91| 日韩精品国产一区二区| 秋霞曰韩R级| 青草视频在线看看看看看看看看看| 久无码| 成人一区二区三区四区| 夜夜高潮夜夜爽国产伦精品| 91色花堂| 天天干天天燥| 国产成人自拍视频在线| 久久99操天天日| 一区中文字幕二区日韩| 龙兴卡官方查询| 91白嫩| 亚洲欧洲自拍图片专区满春格| 琪琪精品免费一区二区三区| 免费看一级a性色生活片久久无| 九九九九九九九精品视频| 91成人在线| 另类图片五月天| 夜夜草天天| 亚洲国产一区二区三区四区国产| 97色五月天完| 国产AV线| 精品蜜乳AV免费观看| 自拍偷拍 日韩无码| 中文字幕高清20页视频| 免费成人在线熟妇网| 91人妻人人澡人人爽人人精品| 九九精品无码专区免费| 大香蕉啪啪啪| 亚洲欧美一区二区不卡视频播放 | 国产精品视频精品一二| 青青草吊丝| 亚洲综合有码| 中文字幕一区二区三区高清| 思思99热| 九草九九九| 欧美v亚洲v综合v国产v妖精| 高清国产av无码| 四虎视频在线观看| 中文字幕在线观| 极品色www影院| 超碰在线97国产| 少妇综合| 亚洲免费看片| 劲爆欧美人妖三区91| 91丨国产丨白浆秘 洗澡动漫| 蜜桃无码AV一区二区| 丝袜无码a片| 老司机福利青青草| 久久97| 大香蕉日韩欧美| 尤物黄色在线观看网站| 日韩二三区| 国产三级片在线观看| 国产视频一区二区免费| 九九九九免费高| 99久国产精品午夜性色福利| 超碰久久性爱| 97亚洲精品超碰| 97人人模人人爽人人| 老鸭窝日丰县女人| 国产欧美精选激情视频| 日韩精品熟妇| 永久电影三级在线观看| 国模一区二区三区| 78m啪啪啪| 91九色精品熟女内射| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 91亚洲网| 97超级久久强资源| 在线中文字幕视频| 91neishe| 蜜桃av色偷偷av老熟女| 爽爽歪在线视频| 人妻少妇精品久久久久久久| 伊人五月天| 丝袜AV一区二区三区| 五月婷婷综合网| 超碰在线91| 日本三级韩三级99久久| 日躁天天爽爽| 久操九九九九| 亚洲中字幕日本一区二区三区| 亚洲熟女国产综合另类| 国产 日韩,欧美 自拍| 岛国小电影| 四虎国产精品永久入口| 大香蕉色网| 欧美探花网| 欧美玖玖爱免费玖玖| 蜜臀操逼黄色视频操的好爽| 久9久9久9久9久9久9| 9999久久久久| 好爽免费视频| 国产黄色动态精品| 密乳无码| 久久9免费视频| 无码又爽又硬又激情免费视频| 天美传媒AV在线| 97欧美精品综合| 麻花豆传媒剧国产MV出差| 天天干1区2区在线| 丁香啪啪| 88xx成人精品视频| 久久久久9999精品九九九| 手机在线观看不卡无码av| www欧美91| 丝袜喷水在线| 久久AV无码网址| 四虎在线观看视频| 日韩午夜国产| 99久久综合网| 搡老女人911熟妇老熟女| 精品国产乱码久久久兰草影视| 韩国三级理论在线| 亚洲综合999| 超碰在97| 色综合91| 亚洲精品官网在线观看| 97视频播放| 日本东京热大香蕉a片| 四虎影院成年人片| 超碰精品日韩欧美国产| 熟女久久久| 久妇网| 亚洲午夜福利视频| 亚洲不卡三级手机播放| 欧美一品道| 蜜色网色哟哟| 国产成人在线观看综合| 妇女性内射冈站HDWWWCOM| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 亚洲av总站| 亚洲精品乱码久久久久久蜜桃麻豆| 精品九九九| 超碰9 7女人| 色婷婷婷五月天激情四射| 99日韩| 一级黄色性爱A级片| 探花精品 一区二区| 中文无线日韩一区| 超碰97玖玖爱| 玖色AV| 免费看日本操逼视频| 操逼大黄片| 欧美精品宗合| 久操频道免费在线呗看| 久久人爽| 日韩一级二级在线| 五月天激情小说| 性色av网站| 翔田千里AⅤHD无码| 亚洲人天堂| 91美女视频直播| 国产精品乱码久久久久久| 操人妻逼91| 超AV色女| 久久一二三四五六七八九区区区 | 国产刺激视频| 强奸a片网| 国产精品久久久久久久毛片1| 国产福利视频精品视频| 五月天亚洲色图| 凌辱美少妇久久aV| 校园春色美腿丝袜 | 国产女人与拘做受视频免费| 伊人网免费视频| 亚洲?V高清一区二区三区尤物| 大香蕉草草| 玖玖爱视频网站| 亚洲色图欧美色图在线播放| 久久精品中文字幕女同| 91爱做| 亚洲欧美日韩国产丝袜自拍中文| 午夜欧美神马久久久久| 亚洲中文字幕乱码无码一区二区| 男女激烈网站最新| 免费观看网黄| 久久国产在线一区二区| 97亚洲综合影院| 校园春色综合网| 中文字幕欧美日韩三级| 97色碰| 激情文学88| 人妻另类 专区 欧美 制服| 97在线免费| 高清无码久操视频| 乱伦色图网址是多少| 国产成年女人免费视频播放a| 嫩草美女久久| 中文字幕亚洲热播人妻| 国产欧美岛国精品一区| 最新中文字幕在线亚洲| 久草福利在线资源站| 岛国精品视频在线观看| 欧美在线视频99| 狼人综合婷婷激情四射 | 一区AV| 一级特黄aaa大片在线观看成人一级片在线观看 | 欲综合网| 超碰95|