Docker--安裝上真、配置

Docker 是一個(gè)開源項(xiàng)目,誕生于 2013 年初羹膳,最初是 dotCloud 公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目睡互。它基于 Google 公司推出的 Go 語(yǔ)言實(shí)現(xiàn)。 項(xiàng)目后來加入了 Linux 基金會(huì)陵像,遵從了 Apache 2.0 協(xié)議就珠,項(xiàng)目代碼在 GitHub 上進(jìn)行維護(hù)。

Docker 自開源后受到廣泛的關(guān)注和討論醒颖,以至于 dotCloud 公司后來都改名為 Docker Inc妻怎。Redhat 已經(jīng)在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 產(chǎn)品中廣泛應(yīng)用泞歉。

Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案逼侦。 Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)。

在 LXC 的基礎(chǔ)上 Docker 進(jìn)行了進(jìn)一步的封裝疏日,讓用戶不需要去關(guān)心容器的管理偿洁,使得操作更為簡(jiǎn)便。用戶操作 Docker 的容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單沟优。

下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處涕滋,可見容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng)挠阁,而傳統(tǒng)方式則是在硬件層面實(shí)現(xiàn)宾肺。

image.png
image.png

在任何地方開發(fā)、部署和運(yùn)行任何應(yīng)用

Docker是一款針對(duì)程序開發(fā)人員和系統(tǒng)管理員來開發(fā)侵俗、部署锨用、運(yùn)行應(yīng)用的一款虛擬化平臺(tái)。Docker 可以讓你像使用集裝箱一樣快速的組合成應(yīng)用隘谣,并且可以像運(yùn)輸標(biāo)準(zhǔn)集裝箱一樣增拥,盡可能的屏蔽代碼層面的差異。Docker 會(huì)盡可能的縮短從代碼測(cè)試到產(chǎn)品部署的時(shí)間寻歧。

Docker 組件

  • The Docker Engine – Docker Engine 是一個(gè)基于虛擬化技術(shù)的輕量級(jí)并且功能強(qiáng)大的開源容器引擎管理工具掌栅。它可以將不同的 work flow 組合起來構(gòu)建成你的應(yīng)用。
  • Docker Hub 可以分享和管理你的images鏡像的一個(gè) Saas 服務(wù)码泛。

為什么選擇Docker

快速交付應(yīng)用程序
  • 我們希望你的開發(fā)環(huán)境能夠更好的提高你的工作效率猾封。Docker容器能夠幫助開發(fā)人員、系統(tǒng)管理員噪珊、QA和版本控制工程師在一個(gè)生產(chǎn)環(huán)節(jié)中一起協(xié)同工作晌缘。我們制定了一套容器標(biāo)準(zhǔn)齐莲,而這套容器標(biāo)準(zhǔn)能夠使系統(tǒng)管理員更改容器的時(shí)候,程序員不需要關(guān)心容器的變化磷箕,而更專注自己的應(yīng)用程序代碼选酗。從而隔離開了開發(fā)和管理,簡(jiǎn)化了開發(fā)和部署的成本搀捷。
  • 我們使應(yīng)用的構(gòu)建方式更加簡(jiǎn)單星掰,可以快速的迭代你的應(yīng)用多望,并且可以可視化的來查看應(yīng)用的細(xì)微更改嫩舟。這能夠幫助組織里邊的成員來更好的理解一個(gè)應(yīng)用從構(gòu)建到運(yùn)行的過程。
  • Docker 是一個(gè)輕量級(jí)的容器怀偷,所以它的速度是非臣已幔快的,而容器的啟動(dòng)時(shí)間只需要一秒鐘椎工,從而大大的減少了開發(fā)饭于、測(cè)試和部署的時(shí)間。輕松部署和擴(kuò)展
  • Docker 容器可以運(yùn)行在大多數(shù)的環(huán)境中维蒙,你可以在桌面環(huán)境掰吕、物理主機(jī)、虛擬主機(jī)再到數(shù)據(jù)中颅痊,私有或者公有云中部署殖熟。
  • 因?yàn)?Docker 可以從多平臺(tái)下運(yùn)行。你可以很容器的遷移你的應(yīng)用程序斑响。如果需要菱属,你可以非常簡(jiǎn)單的將應(yīng)用程序從測(cè)試環(huán)境遷移到云,或者從云遷移到測(cè)試環(huán)境舰罚。
  • Docker 是一個(gè)輕量級(jí)的容器纽门,因此它可以在很短的時(shí)間內(nèi)啟動(dòng)和關(guān)閉。當(dāng)你需要的時(shí)候营罢,你可以啟動(dòng)多個(gè)容器引擎赏陵,并且在不需要使用他們的時(shí)候,可以將他們?nèi)筷P(guān)閉饲漾。

Get higher density and run more workloads

Docker的容器本身不需要額外創(chuàng)建虛擬機(jī)管理系統(tǒng)蝙搔,因此你可以啟動(dòng)多套Docker容器,這樣就可以充分發(fā)揮主機(jī)服務(wù)器的物理資源能颁,也可以降低因?yàn)椴少?gòu)服務(wù)器licenses而帶來的額外成本杂瘸。

快速構(gòu)建 輕松管理

因?yàn)镈ocker上述輕便,快速的特性伙菊“苡瘢可以使您的應(yīng)用達(dá)到快速迭代的目的敌土。每次小的變更,馬上就可以看到效果运翼。而不用將若干個(gè)小變更積攢到一定程度再變更返干。每次變更一小部分其實(shí)是一種非常安全的方式。

Docker的安裝和使用

Docker CE 的安裝請(qǐng)參考官方文檔:

安裝Docker -- Ubantu為例

OS 要求

要安裝Docker CE血淌,您需要這些Ubuntu版本之一的64位版本:

  • Cosmic 18.10
  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)

Docker CE上支持x86_64(或amd64)armhf矩欠,arm64,s390x (IBM Z)悠夯,和ppc64le(IBM的Power)架構(gòu)癌淮。

卸載舊版本
Docker的舊版本被稱為docker,docker.io 或docker-engine沦补。如果已安裝乳蓄,請(qǐng)卸載它們:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

支持的存儲(chǔ)驅(qū)動(dòng)

Docker CE在Ubuntu支持overlay2aufsbtrfs存儲(chǔ)驅(qū)動(dòng)程序夕膀。

注意:在Docker Engine - Enterprise中虚倒,btrfs僅在SLES上受支持。有關(guān)更多詳細(xì)信息产舞,請(qǐng)參閱btrfs上的文檔 魂奥。

對(duì)于Linux內(nèi)核版本4及更高版本的新安裝,overlay2 支持并首選aufs易猫。Docker CE overlay2 默認(rèn)使用存儲(chǔ)驅(qū)動(dòng)程序耻煤。如果需要使用aufs,則需要手動(dòng)配置擦囊。見aufs

安裝 Docker CE

您可以根據(jù)需要以不同方式安裝Docker CE:

  • 大多數(shù)用戶 設(shè)置Docker的存儲(chǔ)庫(kù)并從中進(jìn)行安裝违霞,以便于安裝和升級(jí)任務(wù)。這是推薦的方法瞬场。

  • 有些用戶下載DEB軟件包并 手動(dòng)安裝并完全手動(dòng)管理升級(jí)买鸽。這在諸如在沒有訪問互聯(lián)網(wǎng)的氣隙系統(tǒng)上安裝Docker的情況下非常有用。

  • 在測(cè)試和開發(fā)環(huán)境中贯被,一些用戶選擇使用自動(dòng) 便捷腳本來安裝Docker眼五。

使用存儲(chǔ)庫(kù)安裝

在新主機(jī)上首次安裝Docker CE之前,需要設(shè)置Docker存儲(chǔ)庫(kù)彤灶。之后看幼,您可以從存儲(chǔ)庫(kù)安裝和更新Docker。

設(shè)置存儲(chǔ)庫(kù)
  1. 更新apt包索引:

    $ sudo apt-get update
    
  2. 安裝包以允許apt通過HTTPS使用存儲(chǔ)庫(kù):

    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    
  3. 添加Docker的官方GPG密鑰:

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通過搜索指紋的最后8個(gè)字符幌陕,驗(yàn)證您現(xiàn)在擁有帶指紋的密鑰 诵姜。

    $ sudo apt-key fingerprint 0EBFCD88
    
    pub   rsa4096 2017-02-22 [SCEA]
          9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
    sub   rsa4096 2017-02-22 [S]
    
  4. 使用以下命令設(shè)置穩(wěn)定存儲(chǔ)庫(kù)。要添加 夜間測(cè)試存儲(chǔ)庫(kù)搏熄,請(qǐng)?jiān)谙旅娴拿钪械膯卧~后添加單詞nightlytest(或兩者)stable棚唆。了解夜間測(cè)試頻道暇赤。

    注意:下面的lsb_release -cs子命令返回Ubuntu發(fā)行版的名稱,例如xenial宵凌。有時(shí)鞋囊,在像Linux Mint這樣的發(fā)行版中,您可能需要更改$(lsb_release -cs) 為父Ubuntu發(fā)行版瞎惫。例如溜腐,如果您正在使用 Linux Mint Tessa,則可以使用bionic瓜喇。Docker不對(duì)未經(jīng)測(cè)試和不受支持的Ubuntu發(fā)行版提供任何保證挺益。

x86_64 / amd64 對(duì)應(yīng)的是:

```
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
```

安裝DOCKER CE

  1. 更新apt包索引。

    $ sudo apt-get update
    
  2. 安裝最新版本的Docker CE和containerd欠橘,或者轉(zhuǎn)到下一步安裝特定版本:

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    

    有多個(gè)Docker存儲(chǔ)庫(kù)矩肩?

    如果您啟用了多個(gè)Docker存儲(chǔ)庫(kù)现恼,則在未指定apt-get installapt-get update命令中的版本的情況下安裝或更新始終會(huì)安裝盡可能高的版本肃续,這可能不適合您的穩(wěn)定性需求。

  3. 要安裝特定版本的Docker CE叉袍,請(qǐng)?jiān)趓epo中列出可用版本始锚,然后選擇并安裝:

    一個(gè)。列出您的倉(cāng)庫(kù)中可用的版本:

    $ apt-cache madison docker-ce
    
      docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
    

    例如喳逛,使用第二列中的版本字符串安裝特定版本5:18.09.1~3-0~ubuntu-xenial瞧捌。

    $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
    
  4. 通過運(yùn)行hello-world 映像驗(yàn)證是否正確安裝了Docker CE 。

    $ sudo docker run hello-world
    

    此命令下載測(cè)試映像并在容器中運(yùn)行它润文。當(dāng)容器運(yùn)行時(shí)姐呐,它會(huì)打印一條信息性消息并退出。

Docker CE已安裝并正在運(yùn)行典蝌。該docker組已創(chuàng)建曙砂,但未向其添加任何用戶。您需要使用它sudo來運(yùn)行Docker命令骏掀。繼續(xù)Linux postinstall以允許非特權(quán)用戶運(yùn)行Docker命令和其他可選配置步驟鸠澈。

添加daemon.json文件

運(yùn)行 sudo docker run hello-world,沒有返回結(jié)果截驮,如下:

image.png

docker在本地沒有找到hello-world鏡像笑陈,也沒有從docker倉(cāng)庫(kù)中拉取鏡像,出項(xiàng)這個(gè)問題的原因:是應(yīng)為docker服務(wù)器再國(guó)外葵袭,我們?cè)趪?guó)內(nèi)無法正常拉取鏡像涵妥,所以就需要我們?yōu)閐ocker設(shè)置國(guó)內(nèi)阿里云的鏡像加速器;
需要修改配置文件 /etc/docker/daemon.json 如下:
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}

先創(chuàng)建 daemon.json

image.png

后添加字段


image.png

重啟docker systemctl restart docker
查看docker 狀態(tài) systemctl restart docker

image.png

運(yùn)行 sudo docker run hello-world坡锡,結(jié)果如下:

image.png

升級(jí)DOCKER CE

要升級(jí)Docker CE蓬网,請(qǐng)先運(yùn)行sudo apt-get update块请,然后按照 安裝說明選擇要安裝的新版本。

從包安裝

如果您無法使用Docker的存儲(chǔ)庫(kù)來安裝Docker CE拳缠,則可以下載.deb適用于您的發(fā)行版的 文件并手動(dòng)安裝墩新。每次要升級(jí)Docker時(shí)都需要下載新文件。

  1. https://download.docker.com/linux/ubuntu/dists/選擇你的Ubuntu版本窟坐,瀏覽pool/stable/海渊,選擇amd64armhf哲鸳,arm64臣疑,ppc64el,或s390x徙菠,并下載.deb文件要安裝多克爾CE版本讯沈。

Note: To install a nightly package, change the word stable in the URL to nightly. Learn about nightly and testchannels.

  1. 安裝Docker CE,將下面的路徑更改為您下載Docker軟件包的路徑婿奔。

    $ sudo dpkg -i /path/to/package.deb
    

    Docker守護(hù)程序自動(dòng)啟動(dòng)缺狠。

  2. 通過運(yùn)行hello-world 映像驗(yàn)證是否正確安裝了Docker CE 。

    $ sudo docker run hello-world
    

    此命令下載測(cè)試映像并在容器中運(yùn)行它萍摊。當(dāng)容器運(yùn)行時(shí)挤茄,它會(huì)打印一條信息性消息并退出。

Docker CE已安裝并正在運(yùn)行冰木。該docker組已創(chuàng)建穷劈,但未向其添加任何用戶。您需要使用它sudo來運(yùn)行Docker命令踊沸。繼續(xù)執(zhí)行Linux的安裝后步驟歇终, 以允許非特權(quán)用戶運(yùn)行Docker命令和其他可選配置步驟。

升級(jí)DOCKER CE

要升級(jí)Docker CE逼龟,請(qǐng)下載較新的軟件包文件并重復(fù) 安裝過程评凝,指向新文件。

使用便捷腳本安裝

Docker在get.docker.comtest.docker.com上提供了便捷腳本审轮,用于快速肥哎,非交互地將Docker CE的邊緣和測(cè)試版本安裝到開發(fā)環(huán)境中。腳本的源代碼位于 docker-install存儲(chǔ)庫(kù)中疾渣。 建議不要在生產(chǎn)環(huán)境中使用這些腳本篡诽,在使用它們之前,您應(yīng)該了解潛在的風(fēng)險(xiǎn):

  • 腳本需要rootsudo特權(quán)才能運(yùn)行榴捡。因此杈女,在運(yùn)行腳本之前,應(yīng)仔細(xì)檢查和審核腳本。
  • 這些腳本會(huì)嘗試檢測(cè)您的Linux發(fā)行版和版本达椰,并為您配置包管理系統(tǒng)翰蠢。此外,腳本不允許您自定義任何安裝參數(shù)啰劲。從Docker的角度或您自己組織的指導(dǎo)方針和標(biāo)準(zhǔn)來看梁沧,這可能會(huì)導(dǎo)致配置不受支持。
  • 腳本安裝包管理器的所有依賴項(xiàng)和建議蝇裤,而不要求確認(rèn)廷支。這可能會(huì)安裝大量軟件包,具體取決于主機(jī)的當(dāng)前配置栓辜。
  • 該腳本不提供選項(xiàng)來指定要安裝的Docker版本恋拍,并安裝在“邊緣”通道中發(fā)布的最新版本。
  • 如果已使用其他機(jī)制在主機(jī)上安裝了Docker藕甩,請(qǐng)不要使用便捷腳本施敢。

此示例使用get.docker.com上的腳本在Linux上安裝最新版本的Docker CE。要安裝最新的測(cè)試版本狭莱,請(qǐng)改用test.docker.com僵娃。在下面的每個(gè)命令中,替換每次出現(xiàn)的getwith test贩毕。

警告

始終檢查從Internet下載的腳本悯许,然后在本地運(yùn)行它們。

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

如果您想將Docker用作非root用戶辉阶,您現(xiàn)在應(yīng)該考慮將您的用戶添加到“docker”組,例如:

  sudo usermod -aG docker your-user

請(qǐng)記得注銷并重新登錄才能生效瘩扼!

警告

將用戶添加到“docker”組會(huì)授予他們運(yùn)行容器的能力谆甜,這些容器可用于獲取Docker主機(jī)上的root權(quán)限。 有關(guān)更多信息集绰,請(qǐng)參閱 Docker守護(hù)程序攻擊面规辱。

已安裝Docker CE。它會(huì)自動(dòng)在DEB基于發(fā)行版的分發(fā)上啟動(dòng)栽燕。在RPM基于On的 基礎(chǔ)上罕袋,您需要使用相應(yīng)的systemctlservice命令手動(dòng)啟動(dòng)它 。如消息所示碍岔,非root用戶默認(rèn)情況下無法運(yùn)行Docker命令浴讯。

使用便捷腳本后升級(jí)DOCKER

如果您使用便捷腳本安裝了Docker,則應(yīng)直接使用軟件包管理器升級(jí)Docker蔼啦。重新運(yùn)行便捷腳本沒有任何好處榆纽,如果它嘗試重新添加已添加到主機(jī)的存儲(chǔ)庫(kù),則可能會(huì)導(dǎo)致問題。

卸載Docker CE

  1. 卸載Docker CE軟件包:

    $ sudo apt-get purge docker-ce
    
  2. 主機(jī)上的圖像奈籽,容器饥侵,卷或自定義配置文件不會(huì)自動(dòng)刪除。要?jiǎng)h除所有圖像衣屏,容器和卷:

    $ sudo rm -rf /var/lib/docker
    

您必須手動(dòng)刪除任何已編輯的配置文件躏升。

·

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市狼忱,隨后出現(xiàn)的幾起案子煮甥,更是在濱河造成了極大的恐慌,老刑警劉巖藕赞,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件成肘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡斧蜕,警方通過查閱死者的電腦和手機(jī)双霍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來批销,“玉大人洒闸,你說我怎么就攤上這事【浚” “怎么了丘逸?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)掀宋。 經(jīng)常有香客問我深纲,道長(zhǎng),這世上最難降的妖魔是什么劲妙? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任湃鹊,我火速辦了婚禮,結(jié)果婚禮上镣奋,老公的妹妹穿的比我還像新娘币呵。我一直安慰自己,他們只是感情好侨颈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布余赢。 她就那樣靜靜地躺著,像睡著了一般哈垢。 火紅的嫁衣襯著肌膚如雪妻柒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天温赔,我揣著相機(jī)與錄音蛤奢,去河邊找鬼鬼癣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛啤贩,可吹牛的內(nèi)容都是我干的待秃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痹屹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼章郁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起志衍,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤暖庄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后楼肪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體培廓,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年春叫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肩钠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暂殖,死狀恐怖价匠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呛每,我是刑警寧澤踩窖,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布分预,位于F島的核電站吠冤,受9級(jí)特大地震影響缨叫,放射性物質(zhì)發(fā)生泄漏轰坊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一鸠删、第九天 我趴在偏房一處隱蔽的房頂上張望掐隐。 院中可真熱鬧窥淆,春花似錦叁幢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至窒百,卻和暖如春黍判,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背篙梢。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工顷帖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓贬墩,卻偏偏與公主長(zhǎng)得像榴嗅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陶舞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容