亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Docker命令行實(shí)戰(zhàn)指南:從鏡像、容器到Compose與網(wǎng)絡(luò)排錯(cuò)

Docker命令行實(shí)戰(zhàn)指南:從鏡像、容器到Compose與網(wǎng)絡(luò)排錯(cuò) 說(shuō)實(shí)話Docker 的命令行看一遍文檔誰(shuí)都會(huì)難的是把“能敲出幾條命令”變成“腦子里有一套完整的操作邏輯”。尤其那些天天上熱搜的問(wèn)題docker 安裝失敗、desktop 起不來(lái)、權(quán)限報(bào)錯(cuò)、網(wǎng)絡(luò)不通、MySQL 和 Redis 裝好卻連不上根源大多不是命令本身記不熟而是對(duì) Docker 的命令行體系、對(duì)象關(guān)系、網(wǎng)絡(luò)和數(shù)據(jù)卷的底層工作原理缺少一個(gè)整體認(rèn)知。這篇內(nèi)容沒(méi)有太多“介紹”和“概述”我直接把自己這些年從入門(mén)到能獨(dú)立維護(hù)生產(chǎn)環(huán)境的經(jīng)驗(yàn)拆開(kāi)了寫(xiě)。全文圍繞 Docker 命令行核心命令展開(kāi)從環(huán)境初始化、鏡像和容器管理、Compose 編排到網(wǎng)絡(luò)、數(shù)據(jù)卷、高頻排錯(cuò)一路寫(xiě)到日常維護(hù)習(xí)慣。適合兩類(lèi)人一類(lèi)是剛接觸 Docker想系統(tǒng)性把命令學(xué)扎實(shí)的新手另一類(lèi)是已經(jīng)在用 Docker但遇到問(wèn)題只能靠百度、搜完還是不知道原因的實(shí)踐者。讀完這篇至少你拿到任何一個(gè)容器項(xiàng)目都能用命令行把它盤(pán)清楚。1. 先把環(huán)境盤(pán)明白安裝、守護(hù)進(jìn)程與命令行入口命令行本質(zhì)上只是一個(gè)客戶端真正干活的是后臺(tái)的 Docker 守護(hù)進(jìn)程。很多人剛上手就卡在環(huán)境上所以我先把安裝、版本選擇和 Socket 權(quán)限這幾個(gè)基礎(chǔ)問(wèn)題說(shuō)透。1.1 Linux 安裝 Docker 時(shí)我為什么推薦走官方源而不是無(wú)腦一鍵腳本Linux 上安裝 Docker常用的方式有三種系統(tǒng)自帶包管理器里的舊版本、官方一鍵腳本、手動(dòng)配置官方源的完整安裝。我的建議是——生產(chǎn)環(huán)境不要用系統(tǒng)源里的 docker.io版本太老一鍵腳本雖然快但有時(shí)會(huì)默認(rèn)拉取你不太想要的版本而且腳本執(zhí)行過(guò)程不可控。以 Ubuntu 為例我習(xí)慣手動(dòng)配置 Docker 官方源步驟并不復(fù)雜sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg隨后寫(xiě)入源文件注意 Ubuntu 版本代號(hào)要和官方路徑匹配echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null接著執(zhí)行sudo apt-get update安裝核心組件sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin這里有幾個(gè)點(diǎn)需要解釋。docker-ce是社區(qū)版守護(hù)進(jìn)程docker-ce-cli是命令行工具這兩者分開(kāi)裝的好處是以后即使你只要個(gè)遠(yuǎn)程客戶端也不需要在服務(wù)器上跑守護(hù)進(jìn)程。containerd.io是運(yùn)行時(shí)底座鏡像真正由 containerd 管理Docker CLI 只是上層封裝。docker-buildx-plugin和docker-compose-plugin一個(gè)是多架構(gòu)構(gòu)建工具一個(gè)是 Compose v2 插件后面編排都會(huì)用到。安裝完成后用docker version驗(yàn)證。如果只看到 Client 版本而 Server 部分是空的說(shuō)明守護(hù)進(jìn)程沒(méi)起來(lái)先查systemctl status docker必要時(shí)手動(dòng)sudo systemctl start docker。這一步很多人忽略導(dǎo)致后面所有命令都報(bào)“Cannot connect”。1.2 單機(jī)環(huán)境與 Docker DesktopCLI 行為差異很多 Windows 和 macOS 用戶接觸 Docker 是從 Docker Desktop 開(kāi)始的。它的本質(zhì)是在本機(jī)虛擬化一個(gè) Linux 環(huán)境CLI 只是發(fā)指令的窗口。Desktop 的優(yōu)勢(shì)是圖形化、免 Linux 安裝劣勢(shì)是它在操作系統(tǒng)和 Docker Engine 之間多了一層一旦虛擬化層出問(wèn)題命令行就會(huì)報(bào)一堆看起來(lái)很?chē)樔说腻e(cuò)。安裝 Docker Desktop 后先運(yùn)行docker context ls看一下當(dāng)前使用的是哪個(gè)上下文。你會(huì)看到類(lèi)似desktop-linux *的條目星號(hào)表示當(dāng)前環(huán)境。如果誤刪或切換了 context可以用docker context use desktop-linux切回來(lái)。這個(gè)命令知道的人不多但排錯(cuò)時(shí)很關(guān)鍵。Desktop 環(huán)境下還要注意命令行報(bào)npipe:////./pipe/dockerDesktopLinuxEngine連不上絕大多數(shù)不是你的命令寫(xiě)錯(cuò)了而是 Docker Desktop 里 Linux Engine 沒(méi)起來(lái)。常見(jiàn)原因有三個(gè)宿主機(jī)沒(méi)有開(kāi)啟硬件虛擬化WSL2 內(nèi)核或系統(tǒng)組件版本過(guò)舊以及 Desktop 服務(wù)被安全軟件攔截。第一個(gè)問(wèn)題要到 BIOS 里找 Intel VT-x 或 AMD SVM 開(kāi)關(guān)Windows 功能里也要確?!疤摂M機(jī)平臺(tái)”和“適用于 Linux 的 Windows 子系統(tǒng)”兩項(xiàng)已勾選。做完這些再重啟 Docker Desktop基本都能解決。1.3 最常見(jiàn)的啟動(dòng)失敗Socket 權(quán)限與守護(hù)進(jìn)程檢查L(zhǎng)inux 下首次運(yùn)行docker ps新手最容易碰到的是permission denied while trying to connect to the Docker daemon socket這個(gè)報(bào)錯(cuò)的原因很簡(jiǎn)單Docker CLI 默認(rèn)通過(guò)/var/run/docker.sock和守護(hù)進(jìn)程通信這個(gè) socket 文件屬于 root 用戶和 docker 組普通用戶不在 docker 組里自然沒(méi)權(quán)限。解決方案兩條路。臨時(shí)用sudo沒(méi)問(wèn)題但如果天天sudo docker文件歸屬和權(quán)限會(huì)變得一團(tuán)糟而且很多生成物比如掛載出來(lái)的文件都會(huì)帶 root 權(quán)限后續(xù)清理很煩。推薦把當(dāng)前用戶加入 docker 組sudo usermod -aG docker $USER newgrp docker執(zhí)行后重新登錄終端再docker ps即可。這里要潑一盆冷水把用戶加入 docker 組等同于授予該用戶 root 級(jí)別的宿主機(jī)權(quán)限因?yàn)槿萜骺梢話燧d宿主機(jī)目錄、甚至直接讀寫(xiě)/。所以只對(duì)可信用戶這么做生產(chǎn)服務(wù)器上盡量用 sudo 臨時(shí)提權(quán)別圖省事。還有一種情況是守護(hù)進(jìn)程完全沒(méi)起來(lái)。systemctl status docker會(huì)顯示 active (running) 才是正常如果不是查看journalctl -u docker -n 50看具體失敗原因。常見(jiàn)的有網(wǎng)絡(luò)橋接創(chuàng)建失敗、iptables 配置被安全軟件改寫(xiě)、磁盤(pán)滿等。這些問(wèn)題在命令行階段暴露得越早越好。2. 鏡像與容器兩個(gè)核心對(duì)象吃透Docker 的日常操作里鏡像和容器幾乎占據(jù)所有高頻命令。鏡像是一個(gè)只讀模板容器是模板運(yùn)行后的實(shí)例。很多命令就是圍繞這兩個(gè)對(duì)象增刪改查理解它們的關(guān)系命令就背住了三分之二。2.1 鏡像命令pull/images/tag/rmi/save/load先看拉取鏡像。默認(rèn)從 Docker Hub 拉取docker pull nginx:1.25-alpine后面附帶的標(biāo)簽tag非常重要。:1.25-alpine表示 Nginx 1.25 的 Alpine 精簡(jiǎn)版本體積小、攻擊面少適合做基礎(chǔ)鏡像。不寫(xiě) tag 默認(rèn)拉latest但latest是一個(gè)滑動(dòng)標(biāo)簽昨天是 1.25明天可能變成 2.0生產(chǎn)環(huán)境最忌諱這種不確定性。所以我會(huì)給線上服務(wù)固定一個(gè)具體 tag必要時(shí)再附帶摘要digest鎖定鏡像版本。查看本地鏡像用docker images也可以簡(jiǎn)寫(xiě)為docker image ls。輸出里包含 REPOSITORY、TAG、IMAGE ID、CREATED、SIZE。SIZE 看著很小不表示完整系統(tǒng)占用因?yàn)樗@示的是單層大小多層累加可能更大。打標(biāo)簽是給鏡像起別名docker tag nginx:1.25-alpine registry.example.com/prod/nginx:1.25-alpine這一步在做私有倉(cāng)庫(kù)推送前幾乎必用把項(xiàng)目名、環(huán)境、版本都寫(xiě)進(jìn)標(biāo)簽里。刪除鏡像用docker rmi image_id或docker image rm。遇到容器還在使用鏡像時(shí)會(huì)報(bào) conflict需要先刪容器再刪鏡像或者直接加-f強(qiáng)刪——但我不推薦輕易用強(qiáng)刪容易把還在運(yùn)行的依賴層關(guān)系搞亂。離線傳輸和備份我會(huì)用 save/loaddocker save -o nginx.tar nginx:1.25-alpine docker load -i nginx.tardocker save保留了鏡像的所有歷史層和元數(shù)據(jù)適合跨機(jī)器遷移。對(duì)應(yīng)地還有docker export但它導(dǎo)出的是容器文件系統(tǒng)不是鏡像常用于緊急取文件不要混用。看鏡像內(nèi)部細(xì)節(jié)用docker inspect返回的是 JSON 格式包含了 entrypoint、環(huán)境變量、端口暴露、掛載點(diǎn)等大量信息。我最常搭配--format輸出指定字段比如只查看入口命令docker inspect --format{{.Config.Entrypoint}} nginx:1.25-alpinedocker history則能看到每一層執(zhí)行了什么命令排查“為什么鏡像這么大”時(shí)非常有用。2.2 容器生命周期run/ps/logs/exec/rm容器的完整生命周期是創(chuàng)建-啟動(dòng)-運(yùn)行-暫停/停止-刪除。但日常用docker run一條命令直接完成創(chuàng)建和啟動(dòng)它也是最復(fù)雜的核心命令沒(méi)有之一。先看一個(gè)綜合示例docker run -d \ --name nginx-web \ -p 8080:80 \ -v /data/nginx:/usr/share/nginx/html \ -e TZAsia/Shanghai \ --restart unless-stopped \ nginx:1.25-alpine各參數(shù)的含義我拆開(kāi)講-d后臺(tái)運(yùn)行容器終端輸出不掛住。--name給容器起名比用隨機(jī) ID 有辨識(shí)度。-p 8080:80宿主機(jī) 8080 映射到容器 80。端口沖突時(shí) Docker 不會(huì)自動(dòng)換端口而是直接報(bào)錯(cuò)所以我習(xí)慣先ss -tlnp | grep 8080檢查端口占用。-v掛載數(shù)據(jù)卷或目錄。-e傳入環(huán)境變量。時(shí)間是容器里最容易忽略的很多容器默認(rèn) UTC 時(shí)區(qū)必須用TZAsia/Shanghai指定。--restart unless-stopped容器異常退出會(huì)自動(dòng)拉起手動(dòng) stop 后不會(huì)重啟。這是最推薦的?;畈呗詀lways在某些主動(dòng)停止場(chǎng)景下反而會(huì)反復(fù)拉起。查看容器運(yùn)行狀態(tài)docker ps只看存活容器docker ps -a看全部包括已退出的容器。輸出里的 STATUS 字段很重要Up 3 hours正常Exited (0)是正常退出Exited (137)通常是內(nèi)存溢出被 killRestarting要重點(diǎn)關(guān)注。查看日志是排錯(cuò)第一手段docker logs -f --tail 200 nginx-web-f實(shí)時(shí)跟蹤輸出--tail 200只顯示最后 200 行。想做時(shí)間范圍過(guò)濾可以加--since 10m否則大日志會(huì)直接刷爆終端。進(jìn)入正在運(yùn)行的容器分兩種docker attach和docker exec。attach是把當(dāng)前終端接到容器主進(jìn)程上容易掛住甚至導(dǎo)致容器等主進(jìn)程退出排錯(cuò)時(shí)我極少用它。exec是在容器內(nèi)新起進(jìn)程更安全docker exec -it nginx-web sh-i保持標(biāo)準(zhǔn)輸入-t分配偽終端。兩個(gè)參數(shù)經(jīng)常一起用少一個(gè)都可能出現(xiàn)輸入無(wú)效或排版錯(cuò)亂。停止和刪除也有講究。docker stop會(huì)先給容器一個(gè)優(yōu)雅停止時(shí)間默認(rèn) 10 秒超時(shí)再?gòu)?qiáng)制 kill。數(shù)據(jù)庫(kù)類(lèi)容器我建議docker stop -t 60給更多時(shí)間刷盤(pán)。刪除容器用docker rm刪除正在運(yùn)行的容器需要先停再刪或者docker rm -f直接強(qiáng)制刪。但我遇到過(guò)很多次-f導(dǎo)致數(shù)據(jù)沒(méi)來(lái)得及落盤(pán)的案例所以生產(chǎn)環(huán)境我盡量不用。2.3 用 MySQL 8.0 實(shí)戰(zhàn)驗(yàn)證常用參數(shù)理論說(shuō)多了容易暈這里用一個(gè)具體的 MySQL 8.0 部署把命令串起來(lái)。很多網(wǎng)上教程會(huì)直接讓你跑一條 run但實(shí)踐中我的步驟是分層的。第一步準(zhǔn)備好宿主機(jī)數(shù)據(jù)目錄避免 mysql 容器以 root 身份在目錄里創(chuàng)建文件后難以維護(hù)mkdir -p /data/mysql/{data,conf,logs}第二步運(yùn)行容器docker run -d \ --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDRoot123456 \ -e TZAsia/Shanghai \ -v /data/mysql/data:/var/lib/mysql \ -v /data/mysql/conf:/etc/mysql/conf.d \ -v /data/mysql/logs:/var/log/mysql \ --restart unless-stopped \ mysql:8.0 \ --character-set-serverutf8mb4 \ --collation-serverutf8mb4_unicode_ci鏡像后面跟的--character-set-serverutf8mb4不是 docker 命令參數(shù)而是傳給 MySQL server 的啟動(dòng)參數(shù)這是 run 的一種經(jīng)典透?jìng)魈匦浴H绻环奖銓?xiě)在命令行還可以放在掛載的/etc/mysql/conf.d下寫(xiě)一個(gè)character-set.cnf效果一樣。第三步驗(yàn)證。先看啟動(dòng)日志里是否出現(xiàn) ready for connectionsdocker logs mysql8 21 | grep -E ready for connections然后進(jìn)入容器用 MySQL 客戶端測(cè)試docker exec -it mysql8 mysql -uroot -p如果外部工具連不上優(yōu)先檢查宿主機(jī)防火墻、-p 3306:3306是否生效以及 MySQL 里 root 的 host 是否被限制為 localhost。很多人第一次部署 MySQL 都在最后一步翻車(chē)因?yàn)?root 用戶默認(rèn)只能從容器內(nèi)登錄。這時(shí)候在容器里執(zhí)行一條授權(quán)即可CREATE USER dev% IDENTIFIED BY Dev123456; GRANT ALL PRIVILEGES ON *.* TO dev%; FLUSH PRIVILEGES;2.4 用 Redis 主從理解自定義網(wǎng)絡(luò)與內(nèi)部通信Redis 主從部署看起來(lái)只是多跑一個(gè)容器但其中藏著一個(gè) Docker 網(wǎng)絡(luò)的重要考點(diǎn)容器之間不要依賴宿主機(jī) IP而應(yīng)該用容器名通信。先創(chuàng)建一個(gè)自定義網(wǎng)絡(luò)docker network create redis-net再啟動(dòng)主節(jié)點(diǎn)docker run -d --name redis-master \ --network redis-net \ -p 6379:6379 \ redis:7-alpine \ redis-server --appendonly yes從節(jié)點(diǎn)啟動(dòng)時(shí)指向的不是宿主機(jī)127.0.0.1:6379而是容器名redis-masterdocker run -d --name redis-slave \ --network redis-net \ -p 6380:6379 \ redis:7-alpine \ redis-server --replicaof redis-master 6379驗(yàn)證主從狀態(tài)docker exec -it redis-slave redis-cli info replication輸出里master_link_status:up表示主從正常。這里的關(guān)鍵是自定義網(wǎng)絡(luò)上啟用了 Docker 內(nèi)置 DNS容器名可以被同網(wǎng)絡(luò)下的其他容器解析成對(duì)應(yīng) IP。如果用默認(rèn) bridge 網(wǎng)絡(luò)舊版本容器之間只能靠 IP 訪問(wèn)一旦容器重建 IP 就變了非常痛苦。所以從 Redis 主從這個(gè)需求開(kāi)始我就建議養(yǎng)成“先建網(wǎng)絡(luò)再跑容器”的習(xí)慣。3. 用 Compose 把多容器編排成一條命令當(dāng)容器數(shù)量超過(guò)三四個(gè)逐條 run 已經(jīng)不適合維護(hù)了。Compose 的價(jià)值不是省那幾行命令而是把容器、網(wǎng)絡(luò)、卷、依賴關(guān)系寫(xiě)進(jìn)一個(gè)聲明式文件讓整套環(huán)境可移植、可追蹤、可審計(jì)。Docker 官方現(xiàn)在的推薦是docker composev2 插件而不是老舊的docker-compose。3.1 Compose 的核心配置字段與啟動(dòng)命令一個(gè)最小可用的 compose 文件長(zhǎng)這樣services: web: image: nginx:1.25-alpine ports: - 8080:80 restart: unless-stopped不用寫(xiě)頂層的version字段新版本 Compose 已經(jīng)忽略它寫(xiě)了反而可能帶來(lái)舊版兼容提示。核心是services映射里面每個(gè) key 都是一個(gè)服務(wù)名也就是網(wǎng)絡(luò)上的主機(jī)名。常用字段我需要單獨(dú)說(shuō)幾個(gè)image直接指定鏡像。如果下面還有build則優(yōu)先構(gòu)建。build指定 Dockerfile 目錄例如build: ./backend配合docker compose up --build使用。ports端口映射寫(xiě)成宿主機(jī)端口:容器端口。注意就算值看起來(lái)是數(shù)字也建議加引號(hào)避免 YAML 解析成其他類(lèi)型。environment環(huán)境變量可以寫(xiě)成列表或字典推薦字典格式更清晰。volumes數(shù)據(jù)卷或目錄掛載。depends_on依賴啟動(dòng)順序。但這只是“等容器啟動(dòng)”不保證“等容器可用”。比如數(shù)據(jù)庫(kù)容器雖然起來(lái)了但初始化還沒(méi)完成后端連接就失敗。要解決這個(gè)問(wèn)題需要配合healthcheck。healthcheck健康檢查定義常用test、interval、timeout、retries。啟動(dòng)命令整套如下docker compose up -d docker compose ps docker compose logs -f backend docker compose exec backend sh docker compose down其中down本身不刪數(shù)據(jù)卷默認(rèn)只停容器和網(wǎng)絡(luò)。如果要清掉所有關(guān)聯(lián)卷用down -v。這個(gè)-v相當(dāng)危險(xiǎn)會(huì)把數(shù)據(jù)庫(kù)數(shù)據(jù)一起刪掉操作前一定確認(rèn)有沒(méi)有持久化。3.2 一個(gè)后端 MySQL Redis 的微服務(wù)項(xiàng)目落地方案空講字段不夠直觀我用一個(gè)常見(jiàn)的微服務(wù)啟動(dòng)場(chǎng)景完整展示。假設(shè)項(xiàng)目有 backend 服務(wù)依賴 MySQL 和 Redis后端 Dockerfile 在./backend目錄。compose 文件services: mysql: image: mysql:8.0 container_name: demo-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: Root123456 MYSQL_DATABASE: demo TZ: Asia/Shanghai volumes: - mysql-data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: [CMD, mysqladmin, ping, -h, localhost, -pRoot123456] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine restart: unless-stopped command: redis-server --appendonly yes volumes: - redis-data:/data ports: - 6379:6379 healthcheck: test: [CMD, redis-cli, ping] interval: 10s timeout: 3s retries: 5 backend: build: ./backend restart: unless-stopped ports: - 8080:8080 environment: DB_HOST: mysql DB_USER: root DB_PASSWORD: Root123456 REDIS_HOST: redis TZ: Asia/Shanghai depends_on: mysql: condition: service_healthy redis: condition: service_healthy執(zhí)行docker compose up -d注意觀察依賴。MySQL 容器只有通過(guò)mysqladmin ping檢查才算健康backend才會(huì)真正創(chuàng)建。這套機(jī)制比單純depends_on可靠得多是我在 dev 和測(cè)試環(huán)境反復(fù)驗(yàn)證后的標(biāo)準(zhǔn)做法。進(jìn)入后端排查時(shí)容器名或者服務(wù)名backend在網(wǎng)絡(luò)里可以直接訪問(wèn)mysql:3306和redis:6379一點(diǎn)都不需要關(guān)心宿主機(jī) IP。這也是 Compose 帶來(lái)的最大便利。3.3 Compose 與生產(chǎn)環(huán)境相關(guān)的幾個(gè)坑第一容器內(nèi)時(shí)區(qū)。很多鏡像基礎(chǔ)層是 UTC如果不在environment里加TZAsia/Shanghai日志和數(shù)據(jù)庫(kù)時(shí)間都會(huì)偏 8 小時(shí)。別指望所有鏡像默認(rèn)設(shè)置好時(shí)區(qū)加一個(gè)環(huán)境變量是最穩(wěn)的。第二掛載目錄的權(quán)限。bind mount宿主機(jī)目錄到容器里很容易出現(xiàn)Permission denied本質(zhì)是 UID/GID 不匹配。簡(jiǎn)單粗暴的方案是把宿主機(jī)目錄權(quán)限改成 777但生產(chǎn)環(huán)境不推薦。更好的方式是在鏡像或 compose 里指定運(yùn)行用戶組或者在 Dockerfile 里useradd一個(gè)和宿主機(jī) UID 相同的用戶。第三端口沖突。compose 里如果把多個(gè)項(xiàng)目都映射到3306:3306第二個(gè)項(xiàng)目啟動(dòng)就會(huì)失敗。一個(gè)很有用的思路是應(yīng)用之間的內(nèi)部訪問(wèn)盡量走容器網(wǎng)絡(luò)不要每次都映射到宿主機(jī)端口。只有真正需要外部訪問(wèn)的服務(wù)才暴露端口。4. 網(wǎng)絡(luò)與數(shù)據(jù)卷持久化與互聯(lián)的底層原理很多人 docker 命令敲得溜但一遇到網(wǎng)絡(luò)不通、數(shù)據(jù)丟失就懵。這一節(jié)把兩個(gè)最容易被表面命令掩蓋的底層機(jī)制講清楚。4.1 四種網(wǎng)絡(luò)模式與自定義網(wǎng)絡(luò)的工作方式Docker 網(wǎng)絡(luò)先看大框架默認(rèn)存在四種模式。bridge是默認(rèn)模式通過(guò)虛擬網(wǎng)橋?yàn)槿萜鞣峙鋬?nèi)網(wǎng) IP容器和外界通信經(jīng)過(guò) NAT 轉(zhuǎn)換。host模式直接共享宿主機(jī)網(wǎng)絡(luò)棧沒(méi)有端口映射概念性能好但隔離差網(wǎng)絡(luò)配置容易沖突。none模式關(guān)閉網(wǎng)絡(luò)用于極端隔離場(chǎng)景。overlay模式主要用于 Swarm 集群跨節(jié)點(diǎn)通信日常單機(jī)用得少。命令層面掌握三條docker network ls docker network create app-net docker network inspect app-netinspect能看到具體有哪些容器掛在網(wǎng)絡(luò)下、每個(gè)容器的 IP、網(wǎng)關(guān)、子網(wǎng)掩碼。排查網(wǎng)絡(luò)不通時(shí)第一步不是 ping而是“你倆到底在不在一張網(wǎng)里”。不同網(wǎng)絡(luò)下的容器不能直接互通除非通過(guò)宿主機(jī)端口映射。為什么自定義網(wǎng)絡(luò)比默認(rèn) bridge 好用核心是內(nèi)置 DNS。在默認(rèn) bridge 中Docker 舊版本不提供 DNS 解析容器間訪問(wèn)只能靠--link或固定 IP自定義 bridge 則會(huì)為每個(gè)容器記錄主機(jī)名容器名就是域名。只要兩個(gè)容器在同一個(gè)app-net里我用docker exec app1 ping app2直接就通了。這一點(diǎn)在 2.4 的 Redis 主從里已經(jīng)體現(xiàn)過(guò)。生產(chǎn)環(huán)境排網(wǎng)絡(luò)問(wèn)題我的固定順序是檢查docker network inspect確認(rèn)容器在同一網(wǎng)絡(luò)。進(jìn)入容器 ping 網(wǎng)關(guān)和對(duì)方容器名。如果內(nèi)部通、外網(wǎng)不通查宿主機(jī)防火墻和端口映射。如果端口映射不通查ss -tlnp看宿主機(jī)端口有沒(méi)有被占用或防火墻放行。4.2 數(shù)據(jù)卷、綁定掛載與容器權(quán)限容器刪除后文件系統(tǒng)并不會(huì)消失但只有寫(xiě)在掛載卷或數(shù)據(jù)卷里的內(nèi)容才能持久保留。理解三種掛載方式的區(qū)別很重要bind mount把宿主機(jī)目錄掛到容器目錄例如-v /data/mysql:/var/lib/mysql。好處是文件直接可見(jiàn)、方便備份壞處是宿主機(jī)目錄權(quán)限直接決定容器內(nèi)訪問(wèn)權(quán)限目錄不存在時(shí)需要先創(chuàng)建。named volume由 Docker 管理例如-v mysql-data:/var/lib/mysql。數(shù)據(jù)存放在/var/lib/docker/volumes/mysql-data/_data作用上像一個(gè)數(shù)據(jù)抽屜容器刪了數(shù)據(jù)還在。tmpfs寫(xiě)入宿主機(jī)內(nèi)存不落盤(pán)適合放臨時(shí)文件。常用命令docker volume create app-data docker volume ls docker volume inspect app-data docker volume rm app-data備份數(shù)據(jù)卷最直接的方式是先用一個(gè)臨時(shí)容器把卷打包出來(lái)docker run --rm \ -v app-data:/data:ro \ -v /backup:/backup \ alpine tar czf /backup/app-data.tar.gz -C /data .這里--rm表示臨時(shí)容器用完自動(dòng)刪除:ro表示以只讀方式掛載原卷避免備份過(guò)程中寫(xiě)壞數(shù)據(jù)。4.3 GitLab 社區(qū)版部署80/22 端口沖突與數(shù)據(jù)卷規(guī)劃把 GitLab 社區(qū)版用 Docker 跑起來(lái)是很多團(tuán)隊(duì)維護(hù)內(nèi)部代碼倉(cāng)庫(kù)的常見(jiàn)需求。它有明確的“官方 docker run 最佳實(shí)踐”直接抄即可但里面有兩個(gè)坑必須提前說(shuō)清楚。先看部署命令docker run -d \ --name gitlab \ --restart always \ -p 8080:80 \ -p 8443:443 \ -p 2222:22 \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:16.4.0-ce.0第一個(gè)坑是宿主機(jī) SSH 端口。GitLab 鏡像內(nèi)部的 SSH 默認(rèn)監(jiān)聽(tīng) 22但宿主機(jī) 22 通常已經(jīng)被 system sshd 占用所以映射成2222:22。這意味著 git clone 地址要改成ssh://gityourhost:2222/group/repo.git而且需要在 GitLab 配置里同步修改docker exec -it gitlab editor /etc/gitlab/gitlab.rb配置項(xiàng)是gitlab_rails[gitlab_shell_ssh_port] 2222。改完執(zhí)行docker exec -it gitlab gitlab-ctl reconfigure第二個(gè)坑是初始密碼。新部署的 GitLab 會(huì)生成一個(gè)隨機(jī)初始 root 密碼保存在容器的/etc/gitlab/initial_root_password文件中且 24 小時(shí)后自動(dòng)刪除。如果你沒(méi)設(shè)置環(huán)境變量務(wù)必第一時(shí)間查看docker exec -it gitlab grep Password: /etc/gitlab/initial_root_password生產(chǎn)環(huán)境我還會(huì)把external_url改成正式域名例如http://gitlab.example.com否則生成的 clone 地址永遠(yuǎn)是容器主機(jī)名。5. 命令行排錯(cuò)實(shí)錄那些年我踩過(guò)的坑這條線上踩坑多了自然就能形成一套快速排查的直覺(jué)。我把最高頻的幾類(lèi)問(wèn)題拿出來(lái)把原因和解決路徑一次講清。5.1 Permission denied 與 npipe 連接失敗Linux 下的權(quán)限問(wèn)題前面已經(jīng)提到加入 docker 組。但如果已經(jīng)加入 docker 組依舊報(bào)錯(cuò)另一個(gè)常見(jiàn)原因是 docker 守護(hù)進(jìn)程沒(méi)起來(lái)或者 socket 文件權(quán)限被改動(dòng)。先檢查ls -l /var/run/docker.sock如果這個(gè)文件不存在說(shuō)明守護(hù)進(jìn)程根本沒(méi)有正常啟動(dòng)服務(wù)拉起來(lái)再說(shuō)。Windows 下 Docker Desktop 報(bào)npipe:////./pipe/dockerDesktopLinuxEngine連接失敗我遇到最多的情況是引擎還沒(méi)啟動(dòng)完成。命令行等個(gè)十幾秒再敲命令往往就通了因?yàn)?Desktop 的圖形面板啟動(dòng)很慢但 CLI 不會(huì)告訴你“再等等”。如果一直失敗就回到 1.2 檢查虛擬化、WSL2 和系統(tǒng)組件。不要在還沒(méi)有確認(rèn) Engine 狀態(tài)時(shí)反復(fù)重啟終端這會(huì)誤導(dǎo)判斷。5.2 bind: address already in use 端口排查啟動(dòng)容器時(shí)最常見(jiàn)的報(bào)錯(cuò)之一docker: Error response from daemon: driver failed programming external connectivity on endpoint xxx: Bind for 0.0.0.0:3306 failed: port is already allocated原因明確了端口被占用。排查順序ss -tlnp | grep 3306 netstat -tlnp | grep 3306 lsof -i:3306如果是另一個(gè)容器占用了同端口docker ps就能看到。如果是宿主機(jī)進(jìn)程占用就要決定是殺掉舊進(jìn)程還是給新容器換端口。我一般傾向換端口而不是強(qiáng)殺未知進(jìn)程尤其生產(chǎn)服務(wù)器上你并不知道那個(gè)進(jìn)程在干什么。5.3 鏡像拉不動(dòng)、超時(shí)怎么辦docker pull超時(shí)或者極慢是最常見(jiàn)的問(wèn)題之一。原因大多是默認(rèn) Docker Hub 的 registry 鏡像源在我們這邊訪問(wèn)不穩(wěn)定。解決方案是配置加速源也就是registry-mirrors。Linux 下改/etc/docker/daemon.json{ registry-mirrors: [https://docker.mirrors.example.com] }改完執(zhí)行sudo systemctl daemon-reload sudo systemctl restart dockerDocker Desktop 用戶則可以在設(shè)置界面的 Docker Engine 配置里加入同樣的 JSON 字段然后重啟 Desktop。配置好之后再用docker pull會(huì)明顯順暢。需要注意不要每個(gè)鏡像都寫(xiě)死某個(gè)私有加速源團(tuán)隊(duì)環(huán)境里最好統(tǒng)一維護(hù)一份標(biāo)準(zhǔn)配置否則換一個(gè)人排錯(cuò)頭大如斗。5.4 容器秒退/反復(fù)重啟的檢查順序docker ps -a里經(jīng)??吹紼xited (1)或Restarting這種狀態(tài)通常不是 Docker 的問(wèn)題而是容器內(nèi)應(yīng)用的問(wèn)題。檢查順序我固定為第一步看日志docker logs --tail 200 --details 容器名日志里如果顯示配置文件不存在、環(huán)境變量為空、端口連不上先去補(bǔ)這些外部依賴。第二步看入口命令。如果鏡像默認(rèn)入口是nginx -g daemon off;但你覆蓋成了/bin/bash沒(méi)有附加-it的情況下 bash 拿到無(wú)終端輸入會(huì)立刻退出。此時(shí)改成docker run -it就能看到退出前的真實(shí)輸出。第三步檢查健康檢查是否過(guò)嚴(yán)。Compose 里 healthcheck 連續(xù)失敗會(huì)觸發(fā)重啟但不說(shuō)明應(yīng)用真掛了有時(shí)只是mysqladmin ping的密碼不對(duì)導(dǎo)致一直被認(rèn)為不健康。6. 提升效率的命令習(xí)慣與日常維護(hù)命令本身學(xué)會(huì)不難難在把它變成肌肉記憶和高效習(xí)慣。最后這部分是我個(gè)人日常維護(hù)里最常用的小技巧不寫(xiě)長(zhǎng)篇大論都是可以直接抄作業(yè)的。6.1 格式化輸出與批量操作docker ps默認(rèn)打印所有列列一多就眼花。我更推薦的寫(xiě)法是自定義格式docker ps --format table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}甚至可以把它設(shè)置成 shell 別名比如alias dpsdocker ps --format table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}查看資源占用用docker stats但默認(rèn)是持續(xù)刷新的跑完就退出可以加docker stats --no-stream批量操作容器時(shí)docker ps -q是核心docker stop $(docker ps -q) docker rm $(docker ps -aq)xargs也很常用比如批量刪除所有 exited 容器docker ps -aq --filter statusexited | xargs docker rm6.2 空間清理prune 的正確打開(kāi)方式磁盤(pán)被鏡像和容器日志占滿是我接手服務(wù)器后最常見(jiàn)的故障。docker system df可以先看整體占用docker system df輸出會(huì)按鏡像、容器、卷、構(gòu)建緩存分別顯示占用。然后謹(jǐn)慎使用清理命令docker container prune docker image prune docker volume prune docker system prune -asystem prune -a會(huì)清掉所有未使用的鏡像、停止的容器和網(wǎng)絡(luò)但默認(rèn)不會(huì)刪數(shù)據(jù)卷。加上--volumes才刪卷。反向警示這條命令一旦執(zhí)行很多本地的歷史鏡像和舊卷將無(wú)法恢復(fù)。我的習(xí)慣是準(zhǔn)備清理前先docker image ls確認(rèn)沒(méi)有需要保留的版本確認(rèn)后再加-a -f并且永遠(yuǎn)不要把生產(chǎn)庫(kù)所在的數(shù)據(jù)卷交給 prune 自動(dòng)處理。6.3 我的日常命令組合拳最后分享一個(gè)我自己的習(xí)慣。每次接手新項(xiàng)目我第一步永遠(yuǎn)是docker ps -a加docker inspect看狀態(tài)而不是直接啟動(dòng)服務(wù)。第二步看日志第三步看環(huán)境變量和掛載。這個(gè)順序永遠(yuǎn)不會(huì)錯(cuò)。另一個(gè)習(xí)慣是把常用命令寫(xiě)成腳本。比如我本地有個(gè)dc.sh內(nèi)容類(lèi)似docker compose ps docker compose logs -f --tail 100 docker compose down --remove-orphans docker compose up -d --build這樣即使換了新機(jī)器只要腳本文件在環(huán)境很快就能搭起來(lái)。命令行不是背出來(lái)的是每天在真實(shí)場(chǎng)景里敲出來(lái)的。多部署幾個(gè) MySQL、Redis、GitLab多把 compose 編排理解透再遇到報(bào)錯(cuò)你不需要搜遍全網(wǎng)光看字段和日志就能猜到問(wèn)題在哪。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
美女黄色91| 熟女露脸激情自拍视频| 亚洲不卡三级手机播放| 色5月婷婷| 久久这里只有精品9| 亚洲久热| 狠狠久久手机视频精品| 日韩无码服务区| 久久色人体 | 郑州宾馆老熟女露脸啪啪| 少妇内射视频| 中文字幕丝袜美腿| 日本在线播放不卡一区| 国产精品干干干| 欧美淫乱视频| 日韩精彩视频| 东京热精品97综合网| 九九久久99| 亚欧高清| 日韩情色一区二区| 大香蕉综合| 99在线免费观看| Sekablack无码一区| 98福利在线视频| 亚洲欧美成人在线| 欧美日本成人一区二区| 91A欧美电影网站| 亚洲精品人妻在线| 天天干美少妇一区| 精品97久久| 久久原创中文| 亚洲成人妻日韩在线| 久久大香蕉手机高清| 欧美成人A√在线一区二区| 国产精品一区在线播放| 日韩天美| 久久亚洲不卡| 亚洲 综合 欧美| 极品白嫩美女白浆成人福利在线看| 尤物网站91| 巨乳特殊服务按摩| 亚洲十八禁止| 亚洲伊人久久精品影院| 色九九综合AV| 大但人体久久久久| 蜜桃臀AV在线| 国产人妻精品一区二区三区秋霞| 国产免费一区| 五十路人妻在线| 99在线啪| 熟人人妻少妇精品久久| 啊啊啊久久| 亚洲欧洲日韩中文字幕一区| 亚洲综合69| 色 亚洲 91| 欧美黑人性猛交91| 在线色资源| av天堂精品久久| 秋霞 色色| 国产乱伦视频污| 天美精品原创av片国产| 麻豆美女丝袜人妻中文| 国产专区第一页| 中文字幕精品一区二| 91网站18禁| dy888午夜老子影视达达兔| 亚洲综合九九| 久久久精品中文字幕爱豆| 日本不卡一区二区| 影音先锋乱| AV网站高清无码在线观看| 国产超碰AV在线精品| 18禁免费视频| 久久性爱免费送| 秋霞影音一区二区三区| 亚洲天堂,男人| 九九成人视频| 亚洲有薄码区日本系列中文字幕| 97玖玖人妻| 操人妻逼91| 色色99| 自拍亚洲综合| 久久啊啊啊| 福利视频香蕉免费一区二区在线| 日美免费黄片| 日本三级韩三级99久久| 99热导航| 欧美色综合网| 亚洲va有码在线天堂| 国产高清成人传媒影视| 精品国产嫩穴视频| 狠狠操狠狠| 色色色色色色色色综合| 欧美日韩国产成人高清| 久久一二区四| 国产一级特黄大片处女| 夜夜操夜夜高潮夜夜爽国产精品区| 亚洲情色 自拍| 69av一区二区三区| 黑丝内射一区二区三区| 老女人碰碰在线碰碰视频| 天操老女人| 超碰在线综合97| 极品国产内射| 天天日天天爽| 97超碰这里只有精品| 粉嫩久久久极品| 欧美组图日韩亚洲中文字幕| 18禁中文字幕| 玖玖爱综合| avav青青草久久夜| 精品一级毛片在线观看| 色五月婷婷麻豆在| 啊操爽品善一区二区三区| 欧美女同在线| 四虎精品永久在线播放| a网站免费观看| 欧美成人国产精品| 日本道久久综合色色| 亚码激情| 曰韩人妻中文字幕在线| 亚洲天堂女优在线| 日韩综合无码一区久久92| 午夜福利免费精品视频| 茄子社区国产精品| 亚洲av影院在线观看| AV中文在线可看| 久操免费电影| 丁香五月综合| 久久久久久九九九| 992这里有精品| 33044男人的天堂深夜备| 天堂俺去俺来也www久久婷婷| 亚洲天天艹| 99在线精品视频| 丁香五月色| 亚欧美色图| 欧美十八禁视频| 天天操天天射青青草| 啊啊啊啊网站| 天天天肏屄欧美| 天美传媒精品一区二区| 97天天做| 伊人网综合在线视频| 国产十八禁视频| 欧美的性爱网站免费| 澳门成人网站久国产日韩| 九九九久久久| 曰韩香蕉97| 8050无码八戒| 精品国产99999| 91精品黄在线观看| 久久久久久性爱免费视频| 超碰国产在线| 韩国一级做a久久久久| 中文字幕日产av人| 在线观看av区| 超碰午夜| 少妇内射www在线观看视频| 93人人操人人| 欧美v日韩v亚洲v最新在线| 免费看污网站| 国产精品自拍欧美在线| 酒色综合网| 九一亚洲国产免费| 国产亚州高清国产拍精| 97超碰超碰| 久久水蜜臀亚洲AV无码精品| 久热色情精品| 国产中文精品一区二区在线观看| 亚洲风情综合网| 天美麻豆精品视频99| 一级性爱视频免费在线| 蜜臀99999| 日本欧美国内在线| 日本东京热久久久电影| 综合激情一一91| 久都青青视频| 日韩人妻资源网| 无码精品蜜桃一区二区三区ww| 久久宗合97| 亚洲精品天天影视综合网 | 九九热九九热| av天堂手机版追回| 亚洲中文字幕精品一区| 久久精品无码熟妇一区二区三区视频导航 | 天堂日本亚洲欧美| 婷婷激情啪啪| 色色色99| 国产www色在线观看| 午夜福利合集| 超碰97欧美日韩| 国产性刺激| 岛国精品视频在线观看| 深夜国产一区二区三区在线看| 久久午夜色播影院免费高清| 超碰到97情色| 吊色| 日本精品九九九| 秋霞男人网| 蜜臀少妇一区二区| 免费视频观看60秒| 免费毛片在线播放| 色综合中文字幕不卡| 日韩欧美中文| 国产精品日本无码A片| 亚洲小说视频| 亚洲第一页综合在线| 免费看毛片操穴| 国产精选三级在线观看| 国产午夜无码片在线观看影视| 亚州综合色| 欧美激情精品久久久| 日韩久久超碰色| 一二三四日本视频高清| www…国产操逼| 国内偷自视频区视频综合 | 天天影视综合色| 国产精品久久久久久久免牛肉蒲团 | 亚洲揄拍网| 热久久91婷婷| 97操97色| 久久综合久久综合人久久夜精品| 久久婷婷一区二| 综合久久中文字幕综合日韩精品| hd成人一区二区在线| 天天摸夜夜添无码小视频| 精品日韩中文在线| 国产色呦呦| 狠狠操官网| 大香蕉一区二区在线观看.| 18禁无码永久免费无限制| 欧美亚洲自拍另类人妻| 婷婷中文网| 午夜福利免费精品视频| 亚洲欧美经典一区二区 | 亚洲欧洲综合成人av一区| 美女操逼A A| 色网站导航大全| 97超碰人人操人人操| 亚洲日韩av专区无码| 肏逼福利网站| 一类无码操逼视频| 免费观看的黄色的网站| 五月丁香| 日日AV加勒比| 91宗合网| 一起草日韩| 91干熟女| 97视频在线免费看| 乱码人妻一区二区三区| 欧美精品系列| 免费观看国产不卡av| 最新亚洲人成网站在线影院| 日韩一级欧美一级在线观看| 蜜臀久久久久久999| 天天日日日射| 四虎AV在线播放| 精品福利| 人人看人人摸人人色| 野狼激情网| 色九九九九| 偷拍新久久| 亚洲 在线| 国产一级137片内射麻豆| 国产操逼逼网| 久久久啊啊| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 婷婷五月综合在线| 精品人妻夜夜草| 久草久日| 亚洲高清无毛一区二区| 婷婷丁香在线| 有码色中文字幕在线观看| 国产熟码AV| 日韩在线电影| 欧美做爰无码A片视频| 亚洲AV高潮| 国产精品色哟哟| 国产1727欧美| 欧美一级黄色免费专区| 天天日天天舔| 啪啪啪男女亚洲中文字幕99| 大地资源在线观看中文第二页| 日韩伦理久 久久 清纯| 97这里有精品| 国产精品久久久久综合| 亚拍在线| 欧美性爱免费短视频| 丰满人妻-区二区三区免费| 精品久久久不卡一区二区| 亚洲中文字幕一区| 强奸乱伦Av网| 蜜臀99999| 午夜福利1区2区3区| 丁香五月影院| 欲香欲色综合天天伊人| 久99视频| 四虎在线视频| 思思热er精品视频| 99热这里只有是精品10| 国产丝袜欧美在线视频| 任你草| 91网站在线播放| 欧美探花网| 欧美78p| 很狠操| 天天色播亚洲综合网站| 色亚洲欧美| 欧美性生活综合| 国产成人精品一区| 国产精品无码AV网站| 1204金沙人妻懂旧版免费| 日韩高清黄片| 九九九九免费视频| 亚洲性爱无码乱伦av| 亚洲宗合网| 久草视频在线视频在线视频在线观看 | 啊啊啊啊啊在线| 91碰碰| 搡老熟女老女人老熟妇免费视频| 91天堂色男人的天堂| 北京美女一区二区| 干干干天天| 九九九热精品| 婷婷综合网| 亚洲精品少妇| 日本不卡卡一区| 成人精品无码| 亚洲少妇激情一区二区三区| 丁香六月综合激情| 高清有码一区二区| 哑洲在线| 人人澡人人爽人人精品| 欧美色视频在线| 日本孕妇孕交| 成人午夜视频免费播放| 亚洲天堂精品日韩电影| 亚洲少妇在线影音| 99精品网| 久久欲| 国产99999久久精品| 婷婷啪啪| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 丁香五月自拍| 亚洲一区二区三区春色| 热热色AV| 欧美狠狠弄| 1禁看欧美黄片免费看| 亚洲,欧美,综合网| 欧美国产视频| 97色碰| 亚洲牲交| 人人搡人人肉久久精品| 色五月首页| 7777奇米影视久久| 国产精品成人午夜福利| 91男同| 久久最新免费视频23| 久久久亚洲高清不打码| 国产乱子伦一区二区三区在线观看| 欧美 传媒 麻豆 日韩 偷拍| 丁香六月婷婷久久综合| 日本操嫩b网| 亚洲男人天堂网| 91美女視頻| 高清不卡视频| 99熟女| 国产精品黄色三级av| 亚洲欧美日韩中文播放| 97超碰中文字幕| 亚洲人妻熟妇三十三区| 蜜臀久久99精品久久久老,,| 亚洲天堂 视频你懂的| 熟女人妻一区二区三区免费看| 久草在| 欧美大码在线视频| 天天爽天天操| 香蕉久久国产AV一区二区| 久久无码成人| 久9精品| 毛片99-全集电影手机免费观看完整-B029AV | 欧美九9 9 9| 日韩在线一区二区| 2023天天操夜夜操| 婷婷激情四射| 成人小电影网站tex| www.av不卡中文字幕| 精品国产乱码久久久兰草影视| 99色悠悠| 91色鬼| 狠狠躁AV| 素人美腿视频网站| 神马久久久久眼| 神马久久久久眼| 黑丝少妇| 九九玖玖精品| 午夜性| 亚洲AV资源| 九九热精品在线| 人妻天天夜夜爽一区二区| 五月婷视频| 日韩久久三区| 99啪| 亚洲大色堂| 中日韩久久人妻一区二区| 先锋精品av色鲁| 色妺妺在线视频| 婷婷色一区| av大香蕉网站| 国产欧美日韩女同性恋ww喷水精品 | 亚洲伊人a线观看视频| 韩国免费播放一级毛片| 无码人妻1727| 国产在线播放成人免费| 尤物黄色在线观看网站| 操逼不卡中文字幕| 中文字幕av乱伦| 五月激情小说| 久久国产精品,久久国产| 国产精品欧美激在线| 亚洲男人天堂2016| 久久激情四射婷婷丁香五月天| 91欧美www| 2017大香蕉| 天天爽夜夜爽夜夜爽精| 亚洲精品中文字幕一区在线视频| 91国产精品在线看| 色综合潮| 撸撸成人在线视频| 天天久久久久久| 久操免费观看| 操逼视频亚洲| 美女露胸露屁股| 青青草成人视频在线观看二区| 人妻无码一区二区三区久久99| 色老大| 亚洲综合在线91| 69天堂| 免费一级精品啪啪视频| 色婷五月天| 午夜欧美J进J出白浆流出久久久 | 欧美黑人与女人91| 久久丁香久草综合网| 亚洲色图殴美色图激情乱伦| 加勒比无码一区二区三区| 国产天美传媒精品| 97爱亚洲| 国产91乱伦| 成功精品影院| 亚洲熟女乱熟乱熟妇综合网二区| 理论久久婷婷网8| 国产精品ⅴ无码大片在线看.| 综合久久欧美| 操淫穴亚洲五月丁香| 人妻精品免费一二三区| 日韩人体偷拍| 鸥美中出| 久久精彩免费视频| 超碰色美女| 老熟女搡BBBB搡BBBB视频| 五月天综合网| 岛国天天午夜影院传媒网| AV一区观看| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 国内毛片国产专区二| 亚洲s在线观看| 美女91网址| 日韩一级性爱无码| 国产精品肉丝自拍| 欧美日韩中文视频播放| 激情五月丁香五月| 欧美日韩中国x| 亚洲春色欧美激情自拍| 日本在线不卡123| 91制服丝袜| 国产精品自产拍在线观看社区| 久久久久元码视频| 国产色精品午夜大片| 蜜屁Av| 综合五月婷婷亚洲一区| 免费亚洲国产精品久久一区| 一区二区三区四区免费视频| 九九九九精品九九九九| 人妻啊啊人妻啊啊| 国产一区在线播放| 有码免费观看| 亚洲国产精品9999在线观看| 91丝袜在线视频| 久操凹凸视频| 一本一道久久综合久久| 99re视频在线观看这里只有精品| 91综合网站| 欧美综合97www| 欧美福利视频啊啊啊啊| 青青草玖玖爱| 日本久久精品| 日韩强奸av| 亚av顶级裸体一区二区三区四区五区| 国产精品无码av| 国产久9| 一二三区在线| AV和黑人在线播放| 中文字幕欧美精品亚洲日韩蜜臀| 人妻久久久久久久久久久久久久久| 亚洲高清自拍| 欧美性天天影院| 91欧美| 亚洲黄色视频在线观看视频| 色婷婷一区二区三区久久午夜| av资源在线播放天堂| 91综合中文字幕| 欧美性爱网97| 大香蕉97久久| 亚洲一级特黄大片在线播放91| 亚洲丝袜二区在线| 婷婷情色五月天| 99色在线视频| 中文字幕亚洲永久精品| 无码78| 亚洲drav色图| 大香蕉伊人亚洲| 免费看A片毛毛片在线播| 九九九九九九九九九国产精品| 91麻豆天美国产| 亚洲福利中文字幕在线| 7777奇米影视久久| 国产精品美女| 欧亚 另类 久| 国产乱码久久久久久| 97亚洲一区| 大香蕉五月天婷婷| 国产吹潮女在线观看| 日本在线视频导航| 亚洲 无码 偷拍| 俺也射| 亚洲色图欧美色图制服丝袜| 久久人妻视频网| 久久精品店| 99久国产精品午夜性色福利| 天天日天天操天天射河南省| henhen91| 91中文字幕在线观看| 久干网| 超碰97玖玖爱| 国产视频一区二区三区久久亚洲天堂| 98色网| 婷婷五月天av| 国内毛片无码一级毛片| 操逼逼福利视频| 欧美性爱日韩性爱| 国产亚洲性生活视频播放| 国产精品第一页国产大屁股视频免费区| 亚洲中文字幕一区| 99re6国产精品99re| 日日A∨| 亚洲大色堂| 美女大乳久久久久久久女人18| 91人妻超碰| 日韩三四五区| 国产精品经典一卡久久久| 亚洲 图片 综合91| 久久久精久久久| 欧美在线官网| 91新在线欧美| 亚州高清色综合| 熟女网站最新| 久久精品人妻一区二区三区| 久久久三区二区一区| 国产精品高朝久久久久久久| 91色人| 日韩大香蕉AV影片| 国产精品久久久| 亚洲**2021在线观看| 伊人五月天婷婷| 亚洲天堂中文字| 日韩人妻 中文字幕| 无码 有码 国产18p| 狠狠爱综合| 懂色AV一区二区三区| 欧美91网站| 北京美女一区二区| 亚洲欧美天堂| 久久久性| 午夜.DJ高清在线观看免费7| 一级黄色视频网| 综合操逼| 大香蕉手机视频| 蜜桃成人1区2区3区| 亚洲综合春色| 国产av热热色| 夜夜嗨一区二区三区直播内容| 亚洲天堂男人网| 免费国产电影一区二区| 一牛影视成人片免费| 日韩婷婷| 啊啊啊97视频| 日韩大香蕉AV影片| 日日操免费视频| 色欲日韩欧美在线一区| www鬼畜国产男人的天堂| 欧美熟女妇同| 无套后入双马尾| 精品丝袜无码一区二区三APP| 日本一区二区不卡精品| 久久久久精| 欧美一区二区三区成人性生活| 欧色网址| 国产美女mm131爽爽爽爽| 91 亚洲 欧洲| 2020中文字幕在线| 伦激情人妻另类人妻| 亚欧成人综合影院| 久热这里| 欧美极品色| 日韩三级伦理中文字幕| 日韩中文字幕二区| 亚洲色香| 国产精品精品系列在线观看| 女人被添高潮免费视频| 极品后入免费视频| 亚洲国产成人精品女人久久久| 一区二区视频在线播放| 综合网欧| 少妇综合| 91在线页| 日本精品加勒比海一区| 久草国产在线视频| 91扒丝袜综合在线| 国产久久久| 亚洲欧美经典一区二区| 亚洲日韩乱码中文无码蜜桃臀网站| 99999re| 激情干在线| 久久色一区二区| 日本乱人伦片中文三区| 天天影视综合网欧美精品| 日本久久久久久久久久| 免费a在线播放v| 欧美色日| 少妇高潮特黄A片| 久9久9精品| 日韩免费三级黄片电影| 亚洲、日韩、综合、另类| 亚洲毛片基地专区| 夜夜操2028| 天天cao在线| 黑丝少妇在线观看| 超碰97 线线 在现| 久久乐| 91综合中文字幕| 啊…啊…操我用力操我| 亚洲精品99999| 美女诱惑爱爱| 最新日本中文字幕| 久久免费看高潮毛片韩国| 欧美不卡在线一区二区| av亚洲天堂资源网站| 人人看人人插| 91久久久老司机| 操逼操网| 超碰久超碰久| 艳美熟妇先锋一二三区| 黄色片A级一区二区三区| 超碰性爱97| 日韩熟女乱伦中出| www.acm成人黄色毛片| 97国产成人精品免费视频| 国产区在线| 欧美久久九九| 高清无码在线播放网站| 天操天操夜操夜月操月年年操操| 国内三级自拍小视频在线观看| 亚洲图片小说欧洲| 91啪9色| 免费一级精品啪啪视频| 中文字幕一品色图| 伊人久久88国产女| 少妇高潮流水av免费| 久久人妻无码毛片A片麻豆| 亚洲日韩精品在线播放| 一起草三级AV电影在线观看| 东京热av男人的天堂| 日韩三级天堂在线观看| 97超碰超碰| 美女干逼2| 99热这里是精品| 搡老熟女免费视频| 搡老熟女国产1000部| 91美女中出| 色就色综合| 啊啊啊啊好疼| 日韩不卡码| 超碰久热| 中文字幕日韩人妻视频一区二区三区| 激情另类激情| 91美女在线看| 人妻少妇色综合| 欧 美 自 拍 偷 拍| 日韩99999| 欧美日动态视频| 欧美日韩成人在线| 日韩欧美tv一区二区在线观看| 亚洲色图A| 色九九九综合| oumeisetu综合| 亚洲 欧美 手机在线观看| 日韩一级久久毛片| 嗯嗯啊啊啊好爽| 亚洲性少妇| 禁止观看美女黄| 亚洲中文字幕三级在线| 狠狠操官网| 成人怡红院| 四虎免费在线播放| 加勒比海成人视频网| 久久精品亚洲婷婷| 美日韩成人| 亚洲AV无码黄色强奸| av网站免费线看| 美女91在线| 伊人网在线点播| 99热18这里只有精品| 吉川爱美98堂在线| 少妇免费视频| 一级黄色影片| 9久精品| 人人天天干干| 综合操逼| 欧美操逼熟女| 久操凹凸视频| 国产精品国产自产高清AV| jizz啪啪| 在线播放成人高清免费视频| 欧美少妇色图| 91bbb| 色噜噜狠狠色综无码久久合欧美| 国产乱码久久久| 久超碰这里只有精品| 超碰在线1234区| 亚洲日韩熟女人妻高清在线| 美腿丝袜高跟网免费视频免费视频| 老女人日韩美91| 国产视频一区二区三区久久亚洲天堂| 色色色色色色色色色色色色色色综合| 色欧美天天| 亚洲欲色9532548967一区| 亚洲成人av色网| 亚洲图片欧美91N| 校园春色之综合网| 人妻在线臀日韩| 97色色色综合网站| 日韩精品电影| 天天干1区2区在线| 后入合集| 日韩亚洲欧美中文字幕| 操操操五月天婷婷丁香影院| 日韩簧片免费看| 小视频玖玖| 8050午夜少妇无码| 天天综合精品| 国产天天骚| 欧美少妇高潮久久91| 欧美色综合图片| 天天综合网视频91| 69精品| 午夜福利一区二区影院| 亚欧性爱无码| 欧美亚洲中文字幕| 中文字幕老熟妇黄色视频| 欧美黄色图片| 91碰碰| 69精品| 欧美日日操| 柠檬AV导航| 亚洲日韩av一区二区三区百合| 日日黄色三级网站| 九九九九九九综合| 久久成年片色大黄全免费网站| 久久东京伊人一本到鬼色| 99亚洲天堂| 性欧美天天| 久久青娱乐| 国内毛片热久久思思热| 国产无套粉嫩白浆在| 性色avv| 999熟女精品| 伊人天天久久动态图| 亚洲91在线播放影院| 狠狠五月天| 欧美日韩亚洲五月天婷婷| 欧美肥臀在线| 操B视频日韩无码| 日本午夜久久电影| 国产福利夜| 国产激情在线| 国产欧美成人第一页在线观看| 色婷婷视频| 性爱欧美五月| 久久久9999| 91在线精品| 日韩午夜国产| 丰满少妇一区二区三区免费看| 天天操夜夜操狠很操| 97精品国产97久久久久久| 中文字幕综合人妻| 国产深夜福利| av片在线观看免费播放| 中文字幕AV片| 91福利网在线观看| 五月丁香| 国产精品毛片| 精品九九国产无码| 九九玖玖精品| 丰满人妻-区二区三区免费看| 2019久久久久久久久福利| 嗯……啊…嗯嗯…啊…好舒服| 青青草原av| 亚洲天堂7777| 久久久久ab| 五月丁香六月综合缴清无码| 这里只有精品久久| 欧洲亚洲人妻无码久久三区四区| 欧美天天干| 人妻一区二区三区| 精品国产Av无码久久久伦古装| 中文字幕一区日韩精| 国产精品久久久久久久免牛肉蒲团| 中文?日韩?免费?精品| 人妻激情另类| 国产乱子伦久久精品综合一区二区三| 亚洲精品中文字幕一区在线视频 | 中文一区在线日| 欧美成人免费在线观看| 亚洲日韩一区电影| 91人妻人人澡人人爽人人精品| 日韩激情啪啪| 色综九九九一区| 黄片不用下载在线观看| 另类老少妇| 亚洲天堂无码| 欧美丰满少妇交换91欧美精品| 嫩草影院性色| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲日韩美国人妻| 久操在97| 国产午夜无码片在线观看影视 | 人人操人人肉久久精品| 99在线精品视频| 精品欧美乱码久| 操九九九九九九| 亚洲日韩人妻中文字幕一区| 少妇同性| 欧美日韩激情无码专区| 啊啊啊好疼| 日本黄 R色 成 人网站| 久草综合网| 志村玲子视频一区二区| 女性91网站| 亚熟在线| 欧亚乱色熟女一区二区| 亚洲色图日韩丝袜制服一区二区五月在线 | 亚洲国产成人高清在线| 操久久久久| 国产伦精品免编号公布| 国产精品爱欲| 麻豆黄站| 射 色综合| 伦激情人妻另类人妻| 蜜桃精品一区二区三区久在线| 亚洲激情在线一区二区| 丝袜AV一区二区三区| 欧美 传媒 麻豆 日韩 偷拍| 国产高清26uuu| 蜜桃臀av一区二区| 97色插| 国产熟女免费观看久久| 南澳成人一级片在线播放| 1024亚洲中文字幕久在线看片你懂的 | 亚洲欧美综合网站| 亚洲欧美精品一区天堂久久| 国产又猛又粗又爽又黄| 激情四射婷婷六月天| 久热这里| 大学生口爆吞精| 欧美春色| 热久日综合| 久久精品国产精品亚洲艾通辽熟妇| 69XX一中文字幕人妻91| 国产精品大屁股999| 国产日本熟女顶级一区二区三区视频| 中国一级操逼视频| 精品人妻av区天天看片| 久久亚洲色图中文字幕| 91蜜臀熟女| 51一区二区三区| 亚洲不卡三级手机播放| 91精品少妇搡搡搡| 综合日韩激情另类图片| AAA久久| 操逼大黄片| 97超碰香蕉| 国产又大又粗又长视频| 91人妻丝袜无码| 国产尹人在线视频免费| 久久久久亚洲三级电影| 一本久道久久综合狠狠爱一密臀精 | 激情婷婷丁香| 殴美日韩m| 熟女精品一区二区三区| 91强热人妻| 岛国激情视频在线观看| 丝袜足交视频| 久九九九九九九九热| 国产乱码精品久久久久久| 日本有码影片下载| 99热9| 伦理片秋霞免费影院| 久思思热视频在线观看| 啪啪啪综合网| 高清孕妇孕交 交| 亚洲在钱| 人妻五十路在线| 国精综合一二三区影视| 九九九九九九九九九九九免费国产| 99久久99九九99九九九| 男人的天堂一区三区| 亚洲中文一区二区三区| 欧美黄色片在线播放| 综合影院永久入口国产| 在线不欧美| 欧美 亚洲 在线| 在线视频资源| 日韩97超碰| 久久久9 9 9精品| 熟妇激情| 校园春色欧美| 日本五区不卡| 九七人妻在线| 高清孕妇孕交 交孕妇| 99精品高潮| 91N综合网在线| 青青青草伊人精品| 操淫穴亚洲五月丁香 | 天天香香欲综合| 九久9热| 国产成人AV麻豆| 色五月天AV| 欧美亚州综合图片| 9999九九九久久久| 久久超碰av在线| yazhouzaixian| 青青操在线视频| 啊啊啊啊啊啊在线| 久久超碰网| 日韩精品字幕| 18禁免费视频| 一个人免费HD91视频| 午夜大香蕉| 日本在线一二| 久久国产精品,久久国产| 欧美韩国你懂得在线 | 大香蕉专区| 中文字幕精品区先锋资源| 99热只有| 99自拍B亚洲| 成人一区二区三区四区| 亚洲欧美综合网站| 搡老女人老熟女91老熟女综合网| 翔田千里AV无码秘 三区| 五月天我淫我色av| 日欧亚洲二三区大片不卡| 日本精品第一视频在'| 粉嫩国产精品久久粉嫩| 91久久久视| 国产97在线播放| 国产 日韩 欧美一区| 91丨豆花丨熟女| 国产女人成人精品视频| 久久9精品视频| 欧美国产操逼| 东北熟女91| 性爱Av免费| 亚洲日韩一区电影| 国厂麻豆77q4| 在线中文字幕视频| 欧美黄色大片在线观看| 91久久久久久久久18| 99久久综合| 四虎精品永久在线观看| 亚洲国产成人精品999| 亚洲欧洲日韩国产自在线| 欧美淫穴| 青青草国产一区二区三区| 麻豆精品一区二区三区四区免费观看| 少妇人妻好深太紧了vr91| 天天色播| 丝袜亚洲91| 亲子敌伦对白在线播放| 亚洲一卡2卡3卡4卡乱码网站 | 午夜精品久久久久| 人妻精品一区二区三区| 综合久久久久久久综合网| 3571色综合一区二区二区| 久偷拍欧美日韩三区| 精品人妻av区天天看片| 69精品久久久久中文字幕| 九九热免费在线国产视频伊人五月| 九九九九九九九| 久久伊人亚洲AV无码网站| 99精品网| 好一吊区二区| 亚洲国产精品9999在线观看| 偷拍伦理视频| 欧美日综合| 日本色色色视频| 一区 欧美 日韩 麻豆| 78久久| 亚洲操人| 欲色啪| 手机在线中文字幕国产| 欧美 中文字幕 一区| 91老司机视频| 无遮挡猛进视频免费无限观看 | 欧美专区日本专区| 北京美女一区二区| 看日韩黄片| 久久久久久午夜男人的天堂| 九九九只有精品| 91快色色色色色| 美女啪欧美一区| 26uuu久久| 少妇国产不卡| 欧美日本成人一区二区| 五月开心网| 97超碰欧美精品| 九九99久久| 麻豆精品.欧美精品.日韩精品.| 天天躁日日躁XXXXYY| 天天操天天日青青草超碰av| 欧美日产国产在线成人第一区| 国产91精品久久久久久久网曝门| 日韩操啪| 日韩人妻网站| 九月激情婷婷| 91丝袜美腿片| 美女尤物人人操| 中文字幕伊人| 人成午夜免费大片| 后入式福利| 9久久精品| 国产精品一区二区三区免费视频| 欧美躁死她一区二区| 日日骚AV| 东北女人被操| 欧美激情性爱视频网站| 国产女人9999| 国产超碰人人爽人人做| 农村少妇久久久久久久| 五月天婷婷激情| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 麻豆天美AV传媒第一页| 大香蕉久| 日日爱99| 加勒比AV网| 亚洲成人一区二区精品| 亚洲丝袜二区在线| 日韩乱码Av| 成人av在线播放| 综合97久久| 这里有精品| 一级性爱视频免费观看 | 乱伦AVxx| 麻豆成人AV| 久久水蜜臀亚洲AV无码精品| 国产高清MV操逼视频| 天天欲望网| 久久天天躁日日躁狠狠躁| 亚洲天堂人妻熟妇视频| 日韩三级av片| 国产性刺激| 国产92麻豆天美精品色欲5| 亚洲欧美在线丝袜| 久久久久久九九九九-美女久久久久久久-成人AV | 日本操BAV| 清纯唯美亚洲综合| 欧美伦乱爱| 可以免费观看的av| 精品日韩人妻视频| 哑洲在线| 日韩天堂av电影在线观看| 黄片免费久久久久久久| 97日韩| 99re在线视频这里只有精品| 久久久久13| 久久久精品视频免费观看| 国产免费一区2区3区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产性感在线观看| 九九黄色视频在线观看| jizz啪啪| 欧美日韩狠狠爱| 天天干人妻| 午夜久久一区二区无码中出| 日韩激情中文字幕有码| 麻豆国产97在线| 久久这里只精品| 亚洲淫色网中文| 91男女啊啊啊| 国产超碰人人操| 天天干天天燥| 九七超碰| 日韩一级二级三级| 丰满人妻一区二区中文| 91jk色拍| 神马久久久久眼| 日韩av乱伦| 激情小说成人日本无码一| 午夜亚洲WWW湿好大| 超碰色97| 91操熟女视频| 色九九综合AV| 91亚洲欧美色图| 97青青操视频| 丰满人妻-区二区三区免费| 欧美亚洲日本视频久久久| 高清无码在线播放网站| A级在线视频| 欧美高清色| 天美麻豆一区二区三区| 久啪视频| 嗯~啊~快点 死我视频免费看网站| 麻豆影音天美视频| 青苹果影院男人的天堂| 亚洲有薄码区日本系列中文字幕| 五月婷婷基地| 色综合色欲色综合色综合色综合| 黄色电影观看久久9| 蜜乳Av成人片网站| 草莓精品视频在线免费观看| 国产资源中文字幕在线| 91免费看一区二区三区| 无码人妻精品酒店| 97超碰色色| 丰满人妻区一区二区三| 九九碰九九爱97超| 精品国产乱码久久久久久蜜臀| 四虎影视精品| 精品午夜福利| 天天射夜夜操| 日本淫乱女一区二区三区视频| 欧美999| 高清国产无码av| 国产婷婷综合在线观看| 妇女性内射冈站HDWWWCOM| 操操操五月天婷婷丁香影院| 亚洲av综合伊人久久| 国产三级资源在线观看| 视频黄色国产一级| 人人摸人人添人人操|