Docker鏡像詳解(3)

鏡像

鏡像是Docker的三大核心概念之一。
Docker運行容器前需要本地存在對應(yīng)的鏡像,如果鏡像不存在本地,Docker會嘗試先從默認鏡像
倉庫下載(默認使用Docker Hub公共注冊服務(wù)器中的倉庫),用戶也可以通過配置,使用自定義的鏡像倉庫。
本篇文章要講的是圍繞鏡像這一核心概念的具體操作,包含以下幾個方面:

  1. 如何使用pull命令從Docker Hub倉庫中下載鏡像文件到本地
  2. 如何查看本地已有的鏡像信息
  3. 如何在遠端倉庫使用search命令進行搜索和過濾
  4. 如何刪除鏡像標簽和鏡像文件
  5. 如何創(chuàng)建用戶定制的鏡像并且保存為外部文件,最后如何向Docker Hub倉庫推送自己的鏡像文件。
3.1 獲取鏡像

鏡像是Docker容器運行的前提。
我們可以使用docker pull命令從網(wǎng)絡(luò)上下載鏡像。該命令的格式為docker pull NAME[:TAG]。對于Docker鏡像來說,如果不顯式地指定TAG,則默認會選擇latest標簽,即下載倉庫中最新版本的鏡像。

[root@private_vpn docker_test]# pwd
/docker_test
[root@private_vpn docker_test]# ls -l
total 0
[root@private_vpn docker_test]# docker pull ubuntu
Using default tag: latest
Trying to pull repository docker.io/library/ubuntu ... 
latest: Pulling from docker.io/library/ubuntu
660c48dd555d: Pull complete 
4c7380416e78: Pull complete 
421e436b5f80: Pull complete 
e4ce6c3651b3: Pull complete 
be588e74bd34: Pull complete 
Digest: sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79
[root@private_vpn docker_test]# ls -l
total 0
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              20c44cd7596f        7 days ago          122.8 MB
docker.io/centos    latest              d123f4e55e12        3 weeks ago         196.6 MB

根據(jù)上面的顯示可以看出,pull完鏡像后并沒有在當前目前保存下一個文件,然后使用docker images命令可以看出剛才pull下的鏡像。

參數(shù)釋義:
REPOSITORY: 來自哪個倉庫,比如ubuntu倉庫、centos倉庫
TAG: 鏡像的標簽信息,如 latest
IMAGE ID: 鏡像的ID號(唯一)
CREATE: 鏡像創(chuàng)建的時間
SIZE: 鏡像的大小

為了更方便的在后續(xù)工作種使用某個鏡像,還可以使用docker tag命令位本地鏡像添加新的標簽。

docker tag IMAGEID(鏡像id) REPOSITORY:TAG(倉庫:標簽)

[root@private_vpn docker_test]# docker tag d123f4e55e12 docker.io/centos:CentOS7
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              20c44cd7596f        7 days ago          122.8 MB
docker.io/centos    CentOS7             d123f4e55e12        3 weeks ago         196.6 MB
docker.io/centos    latest              d123f4e55e12        3 weeks ago         196.6 MB
3.2 查看鏡像

查看鏡像本地已有的鏡像,比較簡單,一條命令:
docker images

3.3 使用search命令進行搜索遠端倉庫鏡像

使用docker search 命令可以搜索遠端倉庫中共享的鏡像,默認搜索官方倉庫中的鏡像。用法為docker search TERM,支持的參數(shù)主要包括:
--automated=true|false: 僅顯示自動創(chuàng)建的鏡像,默認為否
--no-trunc=true|false: 輸出信息不截斷顯示,默認為否
-s,--stars=X: 指定只顯示評價為指定星級以上的鏡像,默認為0,即輸出所有鏡像。

eg: 搜索所有自動創(chuàng)建的評價為3+的帶nginx關(guān)鍵字的鏡像,如下所示:
docker search --automated -s 3 nginx

3.4 刪除鏡像

使用鏡像ID刪除鏡像
當使用docker rmi 命令后面跟上鏡像ID(也可以是ID能進行區(qū)分的部分前綴串或鏡像的標簽)時,會嘗試刪除所有指向該鏡像的標簽,然后刪除該鏡像文件本身。
eg:

[root@private_vpn docker_test]# docker tag d123f4e55e12 docker.io/centos:CentOS7
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              20c44cd7596f        7 days ago          122.8 MB
docker.io/centos    CentOS7             d123f4e55e12        3 weeks ago         196.6 MB
docker.io/centos    latest              d123f4e55e12        3 weeks ago         196.6 MB
[root@private_vpn docker_test]# docker rmi d123f4e55e12
Error response from daemon: conflict: unable to delete d123f4e55e12 (must be forced) - image is referenced in one or more repositories
[root@private_vpn docker_test]# 
[root@private_vpn docker_test]# docker rmi -f  d123f4e55e12
Untagged: docker.io/centos:CentOS7
Untagged: docker.io/centos:latest
Untagged: docker.io/centos@sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a
Deleted: sha256:d123f4e55e1200156d9cbcf4421ff6d818576e4f1e29320a408c72f022cfd0b1
Deleted: sha256:cf516324493c00941ac20020801553e87ed24c564fb3f269409ad138945948d4

根據(jù)上面可以看出先刪除了我新創(chuàng)建的tag,然后刪除鏡像文件本身,值得注意的是另外添加了標簽的鏡像在常規(guī)刪除的時候會報錯,只有強制刪除才起作用。

注意:當有該鏡像創(chuàng)建的容器存在時,鏡像文件默認是無法被刪除的,例如:
現(xiàn)在我來刪除已經(jīng)存在的ubuntu鏡像:

[root@private_vpn docker_test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
ebc03d33db4e        20c44cd7596f        "/bin/bash"         9 minutes ago       Exited (1) 8 minutes ago                       loving_mahavira
[root@private_vpn docker_test]# docker rmi 20c44cd7596f
Error response from daemon: conflict: unable to delete 20c44cd7596f (must be forced) - image is being used by stopped container ebc03d33db4e

看得出無法刪除。那就試試強制刪除,對于正在被容器使用的鏡像慎用。

[root@private_vpn docker_test]# docker  rmi -f 20c44cd7596f
Untagged: docker.io/ubuntu:latest
Untagged: docker.io/ubuntu@sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79
Deleted: sha256:20c44cd7596ff4807aef84273c99588d22749e2a7e15a7545ac96347baa65eda
[root@private_vpn docker_test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
ebc03d33db4e        20c44cd7596f        "/bin/bash"         11 minutes ago      Exited (1) 10 minutes ago                       loving_mahavira
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

看的出來鏡像已經(jīng)被刪除,容器還在運行。
進入容器:

[root@private_vpn docker_test]# docker attach ebc03d33db4e
You cannot attach to a stopped container, start it first

可以看出此時容器已經(jīng)進不去了,所以對于被容器使用的鏡像的刪除要慎重。

對于以上的實驗,很多命令暫時未涉及,后面會講到。此篇文章的例子主要是說明容器和鏡像的關(guān)系。

綜上,如果我們要刪除鏡像正確的操作步驟應(yīng)該是:

  1. 先確認機器上存在的容器。
    docker ps -a
  2. 然后刪除依賴鏡像的容器
    docker rm 容器ID
  3. 最后再刪除相關(guān)鏡像文件
    docker rmi 鏡像ID

eg:

[root@private_vpn docker_test]# cat /tmp/docker.txt 
www
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              d123f4e55e12        3 weeks ago         196.6 MB
[root@private_vpn docker_test]# docker run -t -i d123f4e55e12 /bin/bash
[root@ef6e7768c6e2 /]# ls -l /tmp/  
total 4
-rwx------ 1 root root 836 Sep 11 15:53 ks-script-q6TWGF
-rw------- 1 root root   0 Sep 11 15:51 yum.log
[root@ef6e7768c6e2 /]# 

上面看出我已經(jīng)進入到新啟動的容器內(nèi)了。
exit退出容器

然后按照上面的步驟來正確的刪除容器。

[root@private_vpn docker_test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
ef6e7768c6e2        d123f4e55e12        "/bin/bash"         2 minutes ago       Exited (127) About a minute ago                       infallible_boyd
[root@private_vpn docker_test]# docker rm ef6e7768c6e2
ef6e7768c6e2
[root@private_vpn docker_test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              d123f4e55e12        3 weeks ago         196.6 MB
[root@private_vpn docker_test]# docker rmi d123f4e55e12
Untagged: docker.io/centos:latest
Untagged: docker.io/centos@sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a
Deleted: sha256:d123f4e55e1200156d9cbcf4421ff6d818576e4f1e29320a408c72f022cfd0b1
Deleted: sha256:cf516324493c00941ac20020801553e87ed24c564fb3f269409ad138945948d4
[root@private_vpn docker_test]# 
[root@private_vpn docker_test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

測試成功。

3.5 創(chuàng)建鏡像

創(chuàng)建鏡像的方法主要有3種:基于已有鏡像的容器創(chuàng)建、基于本地模板導(dǎo)入、基于Dockerfile創(chuàng)建。
此處先熟悉下前兩種方式,而基于Dockerfile的創(chuàng)建方法會在后面詳細說明。

1.基于已有鏡像的容器創(chuàng)建

該方法主要是使用docker commit命令。命令格式為:docker commit [options] container [repository[:tag]],主要選項包括:

  • -a,--author="": 作者信息;
  • -c,--change=[]: 提交的的時候執(zhí)行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等;
  • -m,--message="": 提交信息;
  • -p,--pause=ture: 提交時暫停容器運行。
    下面將演示如何使用該命令創(chuàng)建一個新鏡像。首先,啟動一個鏡像,并在其中進行修改操作,可以創(chuàng)建一個test文件,之后退出:

基于centos鏡像創(chuàng)建一個容器,并直接(-d參數(shù))放入后臺運行

[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB
[root@private_vpn ~]# docker run -itd d123 /bin/bash #直接放入后臺運行
375fb5e3f2baa65c002754ab339ae8291d88233821b7db0dddf2f43fd195dd38
[root@private_vpn ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
375fb5e3f2ba        d123                "/bin/bash"              5 seconds ago       Up 4 seconds                             admiring_rosalind
be037923b36f        7c2ea61fd57e        "/bin/bash"              5 days ago          Up 5 days           22/tcp               cocky_blackwell
d1311a650a77        nginx               "nginx -g 'daemon off"   5 days ago          Up 5 days           0.0.0.0:80->80/tcp   webserver
6935f8fff19c        d123f4e55e12        "/bin/bash"              10 days ago         Up 6 days                                grave_pasteur

進入容器并在相關(guān)目錄下創(chuàng)建一個test文件且寫入一定的內(nèi)容:

[root@private_vpn ~]# docker exec -it 375 /bin/bash
[root@375fb5e3f2ba /]# ls -l /tmp/
total 4
-rwx------ 1 root root 836 Sep 11 15:53 ks-script-q6TWGF
-rw------- 1 root root   0 Sep 11 15:51 yum.log
[root@375fb5e3f2ba /]# echo "test123" >> /tmp/test
[root@375fb5e3f2ba /]# cat /tmp/test 
test123

此時該容器跟原centos(鏡像ID: d123f4e55e12)鏡像相比,已經(jīng)發(fā)生了變化,可以使用docker commit命令來提交為一個新的鏡像。提交時可以使用ID或名稱來指定容器。

[root@private_vpn ~]# docker commit -m "Added a new file" -a "daquan" 375 test:0.1
sha256:56cb38d68ab4e5518e5a09d58abc342020342ed0244dec53b5082f80b1221a9b
[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
test                        0.1                 56cb38d68ab4        6 seconds ago       196.6 MB
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB

此時可以看到多了一個鏡像,ID為56cb38d68ab4。且生成了一個test倉庫,tag是0.1。符合上面的命令輸入。

2. 基于本地模板導(dǎo)入

用戶也可以直接從一個操作系統(tǒng)模板文件導(dǎo)入一個鏡像,主要使用docker import命令。命令格式為docker import [options] file|URL|- [repository[:tag]]
要直接導(dǎo)入一個鏡像,可以使用OpenVZ提供的模板來創(chuàng)建,或者用其他已導(dǎo)出的鏡像模板來創(chuàng)建。OPENVZ模板的下載地址為https://openvz.org/Download/templates/precreated
eg: 下載了ubuntu-14.04-x86_64-minimal.tar.gz的模板壓縮包后,之后使用以下命令導(dǎo)入:
cat ubuntu-14.04-x86_64-minimal.tar.gz|docker import - ubuntu:14.04-x86_64

如下所示:

[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
test                        0.1                 56cb38d68ab4        17 minutes ago      196.6 MB
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB
[root@private_vpn ~]# 
[root@private_vpn ~]# cat ubuntu-14.04-x86_64-minimal.tar.gz|docker import - ubuntu:14.04-x86_64
sha256:f52ea2cf900c9adfeae7e33010de9dd2a89a5988a883fed3377e5f962e5b6279
[root@private_vpn ~]# 
[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
ubuntu                      14.04-x86_64        f52ea2cf900c        9 seconds ago       214.8 MB
test                        0.1                 56cb38d68ab4        17 minutes ago      196.6 MB
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB

可以看到我們剛才創(chuàng)建的鏡像(f52ea2cf900c)已經(jīng)有了,可以再以此鏡像為基礎(chǔ)創(chuàng)建一個容器并進入容器看看:

[root@private_vpn ~]# docker run -tid f52 /bin/bash
44eca7876e7c6806655edf539f4e1c313d109db114d5974842345798d1587f63
[root@private_vpn ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
44eca7876e7c        f52                 "/bin/bash"              5 seconds ago       Up 4 seconds                             ecstatic_babbage
375fb5e3f2ba        d123                "/bin/bash"              29 minutes ago      Up 29 minutes                            admiring_rosalind
be037923b36f        7c2ea61fd57e        "/bin/bash"              5 days ago          Up 5 days           22/tcp               cocky_blackwell
d1311a650a77        nginx               "nginx -g 'daemon off"   5 days ago          Up 5 days           0.0.0.0:80->80/tcp   webserver
6935f8fff19c        d123f4e55e12        "/bin/bash"              10 days ago         Up 6 days                                grave_pasteur
[root@private_vpn ~]# 
[root@private_vpn ~]# docker exec -ti 44e /bin/bash
root@44eca7876e7c:/# ls
bin  boot  dev  etc  fastboot  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@44eca7876e7c:/# 
root@44eca7876e7c:/# uname -r
3.10.0-327.10.1.el7.x86_64

至此,基于本地模板導(dǎo)入創(chuàng)建鏡像的方式測試完了。

3.6 存出和載入鏡像

用戶可以使用docker savedocker load命令來存出和載入鏡像。

1.存出鏡像

如果要導(dǎo)出鏡像到本地文件,可以使用docker save命令。例如,導(dǎo)出本地的ubuntu:14.04-x86_64鏡像文件為Ubuntu_14.04.tar,如下所示:

[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
ubuntu                      14.04-x86_64        f52ea2cf900c        About an hour ago   214.8 MB
test                        0.1                 56cb38d68ab4        About an hour ago   196.6 MB
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB
[root@private_vpn ~]# 
[root@private_vpn ~]# docker save -o ubuntu_14.04.tar ubuntu:14.04-x86_64
[root@private_vpn ~]# ls -lh
total 291M
-rw-r--r-- 1 root root   36 Dec  2 19:08 1.txt
-rw-r--r-- 1 root root   14 Dec  6 00:48 test.txt
-rw------- 1 root root 216M Dec  6 16:11 ubuntu_14.04.tar
-rw-r--r-- 1 root root  75M Nov 27  2016 ubuntu-14.04-x86_64-minimal.tar.gz

之后,用戶就可以通過復(fù)制"ubuntu_14.04.tar"文件將該鏡像分享給其他人了。
那么,分享給別人后,別人又如何載入此鏡像到自己的本地呢?

2. 載入鏡像

可以使用docker load將導(dǎo)出的tar文件再導(dǎo)入到本地鏡像庫,例如從文件"ubuntu_14.04.tar"導(dǎo)入鏡像到本地鏡像列表,如下所示:

[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
test                        0.1                 56cb38d68ab4        About an hour ago   196.6 MB
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB
[root@private_vpn ~]# 
[root@private_vpn ~]# 
[root@private_vpn ~]# docker load --input ubuntu_14.04.tar
fd58c1324b91: Loading layer [==================================================>] 225.8 MB/225.8 MB
Loaded image: ubuntu:14.04-x86_64
[root@private_vpn ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
ubuntu                      14.04-x86_64        f52ea2cf900c        About an hour ago   214.8 MB
test                        0.1                 56cb38d68ab4        About an hour ago   196.6 MB
docker.io/nginx             latest              9e7424e5dbae        13 days ago         108.5 MB
docker.io/nuagebec/ubuntu   latest              7c2ea61fd57e        2 weeks ago         329.4 MB
docker.io/ubuntu            latest              20c44cd7596f        2 weeks ago         122.8 MB
docker.io/centos            latest              d123f4e55e12        4 weeks ago         196.6 MB

如上所示,鏡像已載入。因為我只有一臺機器做測試,所以我就先把之前的"ubuntu:14.04-x86_64"鏡像文件刪除了,然后再次導(dǎo)入"ubuntu_14.04.tar"鏡像文件,可以看到創(chuàng)建了鏡像。

這將導(dǎo)入鏡像及其相關(guān)的元數(shù)據(jù)信息(包括標簽等)。導(dǎo)入成功后,可以使用docker images命令進行查看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

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