云计算day04-Docker容器

技术大佬-徐标杆的docker快速入门01
技术大佬-徐标杆的docker快速入门02
技术大佬-KVM和Docker的对比

1:什么是容器?

容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁。隔离的环境拥有自己的系统文件,ip地址,主机名等

kvm虚拟机,linux,系统文件


程序:代码,命令
进程:正在运行的程序

2:容器和虚拟化的区别

linux容器技术,容器虚拟化和kvm虚拟化的区别

kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程)


#linux开机启动流程:
bios开机硬件自检
根据bios设置的优先启动项boot  网卡 硬盘 u盘 光驱
读取mbr引导 2T  UEFI(gpt分区)    mbr硬盘分区信息,内核加载路径, 
加载内核
启动第一个进程/sbin/init  systemd
系统初始化完成
运行服务(nginx,httpd,mysql)


#容器启动流程:
共用宿主机内核:
第一个进程直接启动服务(nginx,httpd,mysql)

容器和虚拟机的区别:
容器:共用宿主机内核,轻量级,损耗少,启动快,性能高,只能运行在linux系统上
虚拟机:需要硬件的支持,需要模拟硬件,需要走开机启动流程,可以运行不同的操作系统

容器是linux内核独有的技术

性能好,速度快,损耗少 ,秒级启动,只能在linux上运行

3:容器技术的发展过程:

chroot技术

参考资料:https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
作业1:使用chroot监狱限制SSH用户访问指定目录和使用指定命令(cp,ls)
https://linux.cn/article-8313-1.html
ls

4. docker安装

需要的软件包下载链接: 提取码: gtsg

#具体操作步骤(作者本地拥有yum仓库,下载后请直接安装)
wget http://192.168.37.202/linux/docker_rpm.tar.gz
echo "192.168.37.202  mirrors.aliyun.com" >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
=========================================
ls
tar xf docker_rpm.tar.gz 
ls
cd docker_rpm/
yum localinstall *.rpm -y
docker version 
systemctl start docker
systemctl enable docker
docker version 

4.1 在docker上装一个nginx

软件包下载链接: 提取码: mnsw

wget http://192.168.37.202/linux/docker_nginx1.15.tar.gz
ls
docker load -i docker_nginx1.15.tar.gz 
docker run -d -p 80:80 nginx
docker run -d -p 80:80 nginx
run(创建并运行一个容器)
-d 放在后台
-p 端口映射
nginx docker镜像的名字

4.2 docker的镜像管理

搜索镜像:
docker search
[root@docker01 ~]# docker search  centos
[root@docker01 ~]# docker search  nginx

官方docker镜像下载地址

hub.docker.com

4.3 拉取镜像

获取镜像
​   docker pull(push)

[root@docker01 ~]# docker pull busybox
[root@docker01 ~]# docker pull busybox:1.29

4.4 查看镜像

[root@docker01 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              19485c79a9bb        9 hours ago         1.22MB
busybox             1.29                758ec7f3a1ee        8 months ago        1.15MB
nginx               latest              be1f31be9a87        11 months ago       109MB

4.5 删除镜像

[root@docker01 ~]# docker image rm busybox:1.29 
[root@docker01 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              19485c79a9bb        9 hours ago         1.22MB
nginx               latest              be1f31be9a87        11 months ago       109MB

4.6 导出镜像

[root@docker01 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              19485c79a9bb        9 hours ago         1.22MB
busybox             1.29                758ec7f3a1ee        8 months ago        1.15MB
nginx               latest              be1f31be9a87        11 months ago       109MB

[root@docker01 ~]# docker image save -o docker_busybox1.29.tar.gz busybox:1.29 
[root@docker01 ~]# ll
total 205572
-rw-------. 1 root root      1392 Apr 19 12:22 anaconda-ks.cfg
-rw-------  1 root root   1378816 Sep  5 12:08 docker_busybox1.29.tar.gz

4.7 导入镜像

[root@docker01 ~]# docker image  load -i docker_busybox1.29.tar.gz 
23bc2b70b201: Loading layer   1.37MB/1.37MB
Loaded image: busybox:1.29

[root@docker01 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              19485c79a9bb        9 hours ago         1.22MB
busybox             1.29                758ec7f3a1ee        8 months ago        1.15MB
nginx               latest              be1f31be9a87        11 months ago       109MB

4.8 导入需要用到的镜像

导入镜像的下载链接: 提取码: db3x

[root@docker01 ~]# ll
-rw-r--r--  1 root root   5853184 Sep  5 12:15 docker_alpine.tar.gz
-rw-r--r--  1 root root   1424896 Sep  5 12:15 docker_busybox.tar.gz
-rw-r--r--  1 root root 202872320 Sep  5 12:16 docker_centos6.9.tar.gz
-rw-r--r--  1 root root  74210304 Sep  5 12:15 docker_k8s_dns.tar.gz


[root@docker01 ~]# for i in `find /root/* -type f -name "docker*"`;do docker image load -i $i;done

[root@docker01 ~]# docker image ls

5. docker的容器管理

*** docker run -d -p 80:80 nginx:latest  
run(创建并运行一个容器)
-d 放在后台
-p 端口映射
-v  源地址(宿主机):目标地址(容器)
​
nginx docker镜像的名字
​
docker run -it --name centos6 centos:6.9 /bin/bash
-it   分配交互式的终端interactive tty
--name 指定容器的名字
/bin/sh覆盖容器的初始命令
​
运行容器***
    docker run image_name   
​
    docker run ==== docker create  + docker start
启动容器
    docker start
停止容器
    docker stop CONTAINER_ID
杀死容器
    docker kill container_name
查看容器列表
    docker ps(-a -l  -q <--no-trunc 全部显示>)
    
​
进入正在运行的容器(目的,调试,排错)
*** docker exec  (会分配一个新的终端tty)
        docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
​
    docker exec -it  容器id或容器名字 /bin/bash(/bin/sh)   
    docker attach(使用同一个终端)  偷偷离开的快捷键ctrl+p,ctrl+q
        docker attach [OPTIONS] CONTAINER
    nsenter(安装yum install -y util-linux 弃用)
​
删除容器
    docker container rm <centos6>
批量删除容器
    docker rm -f `docker ps -a -q`

总结:docker容器内的第一个进程(初始命令)必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!

业务在容器中运行:初始命令,夯住,启动服务

image

6. docker容器的网络访问(端口映射)

docker0:172.17.0.1   jumpserver:172.17.0.2   nginx:172.17.0.3

指定映射(docker 会自动添加一条iptables规则来实现端口映射)
​   -p hostPort:containerPort
​   -p ip:hostPort:containerPort  多个容器都想使用8080端口
​   -p ip::containerPort(随机端口)
​   -p hostPort:containerPort/udp
​   -p  10.0.0.100::53/udp   使用宿主机的10.0.0.100这个ip地址的随机端口的udp协议映射容器的udp53端口
​   -p 81:80 –p 443:443 可以指定多个-p

随机映射
​   docker run -P (随机端口)

通过iptables来实现的端口映射

7. docker的数据卷管理

/usr/share/nginx/html

-v  /opt/xiaoniao:/usr/share/nginx/html

持久化
数据卷(文件或目录)
​   -v 卷名:/data (第一次卷是空,会容器的数据复制到卷中,如果卷里面有数据,把卷数据的挂载到容器中)
​   -v src(宿主机的目录):dst(容器的目录)
数据卷容器
​   --volumes-from(跟某一个已经存在的容器挂载相同的卷)
​

7.1 小鸟飞飞飞_基础版练习部署

小游戏软件包下载链接 提取码: jyqy

第一种方法:
执行下面操作:小游戏的软件包下载后上传后将代码放到容器中

docker run -d -p 80:80 nginx:latest 
docker exec -it <ID_当前一台容器可tab键补全名字> /bin/bash
cd /opt/
mkdir xiaoniao
cd xiaoniao/
wget http://192.168.37.202/linux/xiaoniaofeifei.zip
unzip xiaoniaofeifei.zip 
ls
cd ..
docker container cp xiaoniao <容器名字或_ID>:/usr/share/nginx/html

进入到nginx容器中查看站点目录:
docker exec -it <容器名字或_ID> /bin/bash
cd /usr/share/nginx/html/
ls xiaoniao/

第二种方法:

批量删除掉容器,用容器的数据复制方法把代码放到容器中:
最后接的是nginx的镜像,需提前上传好

docker container rm  -f  `docker ps -a -q`
docker run -d -p 80:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest

第三种方法

删除容器,没有根目录开始的就代表的是创建一个卷

[root@docker01 opt]# docker container rm -f `docker ps -a -q`
[root@docker01 opt]# docker run -d -p 80:80 -v xiaoniao:/usr/share/nginx/html nginx:latest
[root@docker01 opt]# docker volume ls   #卷的资源查看方式
DRIVER              VOLUME NAME
local               xiaoniao

查看卷的详细信息
[root@docker01 opt]# docker volume inspect xiaoniao 
[
    {
        "CreatedAt": "2019-09-05T20:11:26+08:00",   创建时间
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/xiaoniao/_data", 挂载点
        "Name": "xiaoniao",
        "Options": null,
        "Scope": "local"
    }
]
[root@docker01 opt]# cd /var/lib/docker/volumes/xiaoniao/_data
[root@docker01 _data]# ls
50x.html  index.html
[root@docker01 _data]# echo '123456ABCDEFG' >index.html 
如果卷里面有数据,把卷数据的挂载到容器中
再次清除容器,并创建新容器

[root@docker01 _data]# ls
50x.html  index.html
[root@docker01 _data]# docker container rm -f `docker ps -a -q`

内容没有改变,还是之前的数据
image

修改标题名字


docker run --name nginx -d -p 80:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest

7.2 小鸟飞飞飞_加强版练习部署

基于nginx启动一个容器,监听80和81,访问80,出现nginx默认欢迎首页,访问81,出现小鸟。
-p 80:80 -p 81:81 -v xxx:xxx -v xxx:xxxx
基于nginx多端口的多站点。

第一种方法:宿主机上修改

#宿主机上添加一个nginx配置文件xiaoniao.conf,端口为81,站点目录为/opt
#记得打开nginx配置文件中的 include调用
#检查语法后重启nginx,查看80和81端口是否启动

[root@docker01 conf.d]# cat /etc/nginx/conf.d/xiaoniao.conf
server {
        listen       81;
        server_name  _;
        root         /opt;
        index index.html index.htm;
}
[root@docker01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@docker01 conf.d]# systemctl restart nginx
[root@docker01 conf.d]# netstat -lntup|grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19770/nginx: master 
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      19770/nginx: master 


#删除旧容器,杀死当前nginx进程
#创建新容器,将小鸟飞飞飞的nginx配置文件复制到容器的nginx配置文件下

[root@docker01 opt]# pkill -9 nginx 
[root@docker01 opt]# docker container rm -f `docker ps -a -q`   
[root@docker01 opt]# docker run -d -p 80:80 -p 81:81 -v /opt/xiaoniao.conf:/etc/nginx/conf.d/xiaoniao.conf -v /opt/xiaoniao:/opt nginx:latest

10.0.0.11:80

10.0.0.11:81


第二种方法:进入容器修改

#创建新容器,把代码复制到容器中后 进入容器

[root@docker01 opt]# docker container rm -f `docker ps -a -q`
[root@docker01 opt]# docker run -d -p 80:80 -p 81:81 -v /opt/xiaoniao:/opt nginx:latest
[root@docker01 opt]# docker exec  -it silly_napier /bin/bash

#在容器中生成xiaoniao.conf的nginx配置文件
echo 'server {
        listen       81;
        server_name  _;
        root         /opt;
        index index.html index.htm;
}' >/etc/nginx/conf.d/xiaoniao.conf

root@cde61c762776:/etc/nginx/conf.d# ls
default.conf  xiaoniao.conf

#退出容器在宿主机上重启nginx容器 浏览器访问查看是否成功
[root@docker01 opt]# docker restart silly_napier
silly_napier

第三种方法:在容器中使用apt-get工具下载vim工具

Debian系统优化源的链接

#删除旧容器,创建新的nginx容器,把代码复制到容器中,并进入容器

[root@docker01 opt]# docker container rm -f `docker ps -a -q`
[root@docker01 opt]# docker run -d -p 80:80 -p 81:81 -v /opt/xiaoniao:/opt nginx:latest
[root@docker01 opt]# docker exec -it magical_engelbart /bin/bash
root@70e72068d2d0:/# 

#查看容器的版本—Debian,和当前的源的命令

root@70e72068d2d0:/# cat /etc/os-release 
root@70e72068d2d0:/# cat /etc/apt/sources.list


#执行下面的命令,优化Debian的源
root@70e72068d2d0:/# echo 'deb http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list


#更新缓存
root@70e72068d2d0:/# apt-get update

#使用apt-get下载 vim
root@70e72068d2d0:/# apt-get install vim -y

#添加xiaoniao.conf的配置文件
root@70e72068d2d0:/# vim /etc/nginx/conf.d/xiaoniao.conf
server {
        listen       81;
        server_name  _;
        root         /opt;
        index index.html index.htm;
}

#和之前的步骤相同,退出容器,在宿主机上重启nginx容器 
#浏览器访问查看是否成功
[root@docker01 opt]# docker restart silly_napier
silly_napier

8. apt-get 常用的命令

apt-cache search packagename 搜索包
apt-cache show packagename 获取包的相关信息,如说明、大小、版本等
apt-get install packagename 安装包
apt-get install packagename --reinstall 重新安装包
apt-get -f install 修复安装”-f = –fix-missing”
apt-get remove packagename 删除包
apt-get remove packagename --purge 删除包,包括删除配置文件等
apt-get update 更新源
apt-get upgrade 更新已安装的包
apt-get dist-upgrade 升级系统
apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends packagename 了解使用依赖
apt-cache rdepends packagename 是查看该包被哪些包依赖
apt-get build-dep packagename 安装相关的编译环境
apt-get source packagename 下载该包的源代码
apt-get clean 清理无用的包
apt-get autoclean 清理无用的包
apt-get check 检查是否有损坏的依赖

9. 扩展—Debian操作系统常用的命令

资料链接

有些需要下载
apt-get install <软件名> -y

iproute     # ip addr
wget        # 下载软件
curl        # curl工具
ethtool     # 查看网卡状态

一、通用命令: 1. date :print or set the system date and time
    2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z 等)
    3. passwd: print or set the system date and time (用 passwd -h 查看)
    4. logout, login: 登录 shell 的登录和注销命令
    5. pwd: print or set the system date and time
    6. more, less, head tail: 显示或部分显示文件内容.
    7. lp/lpstat/cancel, lpr/lpq/lprm: 打印文件.
    8. 更改文件权限: chmod u+x...
    9. 删除非空目录:rm -fr dir
    10.拷贝目录: cp -R dir
    
二、ubuntu 常用命令:
1. dpkg: package manager for Debian
    * 安装: dpkg -i package
    * 卸载: dpkg -r package
    * 卸载并删除配置文件: dpkg -P |--purge package
    * 如果安装一个包时。说依赖某些库。可以先 #apt-get install somelib...
    * 查看软件包安装内容 :dpkg -L package
    * 另外 dpkg 还有 dselect 和 aptitude 两个 frontend.

2. apt
    * 安装: apt-get install packs
    * apt-get update : 更新源
    * apt-get upgrade: 升级系统。
    * apt-get dist-upgrade: 智能升级。安装新软件包,删除废弃的软件包
    * apt-get -f install : -f == --fix broken 修复依赖
    * apt-get autoremove: 自动删除无用的软件
    * apt-get remove packages :删除软件
    * apt-get remove package --purge 删除包并清除配置文件
    * 清除所以删除包的残余配置文件: dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n"] [" "]|sudo xargs dpkg -P
    * 安装软件时候包的临时存放目录 : /var/cache/apt/archives
    * 清除该目录: apt-get clean
    * 清除该目录的旧版本的软件缓存: apt-get autoclean
    * 查询软件 some 的依赖包: apt-cache depends some
    * 查询软件 some 被哪些包依赖: apt-get rdepends some
    * 搜索软件: apt-cache search name|regexp
    * 查看一个软件的编译依赖库: apt-cache showsrc packagename|grep Build-Depends
    * 下载软件的源代码 : apt-get source packagename (注: sources.list 中应该有 deb-src 源)
    * 安装软件包源码的同时, 安装其编译环境 :apt-get build-dep packagename (有 deb-src 源)
    * 如何将本地光盘加入安装源列表: apt-cdrom add

3. 系统命令:
    * 查看内核版本: uname -a
    * 查看 ubuntu 版本: cat /etc/issue * 查看网卡状态 : ethtool eth0
    * 查看内存,cpu 的信息: cat /proc/meminfo ; cat /proc/cpuinfo
    (/proc 下面的有很多系统信息)
    * 打印文件系统空间使用情况: df -h
    * 查看硬盘分区情况: fdisk -l
    * 产看文件大小: du -h filename;
    * 查看目录大小: du -hs dirname ; du -h dirname 是查看目录下所有文件的大小
    * 查看内存的使用: free -m|-g|-k
    * 查看进程: ps -e 或 ps -aux -->显示用户
    * 杀掉进程: kill pid
    * 强制杀掉: killall -9 processname

4. 网络相关:
    * 配置 ADSL: sudo pppoeconf
    * ADSL 手工拨号: sudo pon dsl-provider
    * 激活 ADSL : sudo /etc/ppp/pppoe_on_boot
    * 断开 ADSL: sudo poff 
    * 根据 IP 查网卡地址: arping IP 地址
    * 产看本地网络信息(包括 ip 等): ifconfig | ifconfig eth0
    * 查看路由信息: netstat -r
    * 关闭网卡: sudo ifconfig eth0 down
    * 启用网卡: sudo ifconfig eth0 up
    * 添加一个服务: sudo update-rc.d 服务名 defaults 99
    * 删除一个服务: sudo update-rc.d 服务名 remove
    * 临时重启一个服务: /etc/init.d/服务名 restart
    * 临时关闭一个服务: /etc/init.d/服务名 stop
    * 临时启动一个服务: /etc/init.d/服务名 start
    * 控制台下显示中文: sudo apt-get install zhcon
    * 查找某个文件: whereis filename 或 find 目录 -name 文件名
    *通过 ssh 传输文件
    scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上
    scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地

5. 压缩:
    *解压缩 a.tar.gz
    #tar zxvf a.tar.gz
    *解压缩 a.tar.bz2 #tar jxvf a.tar.bz2
    *压缩 aaa bbb 目录为 xxx.tar.gz
    #tar zcvf xxx.tar.gz aaa bbb
    *压缩 aaa bbb 目录为 xxx.tar.bz2
    #tar jcvf xxx.tar.bz2 aaa bbb

6. Nautilus:
    特殊 URI 地址
    * computer:/// - 全部挂载的设备和网络
    * network:/// - 浏览可用的网络
    * burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录
    * smb:/// - 可用的 windows/samba 网络资源
    * x-nautilus-desktop:/// - 桌面项目和图标
    * file:/// - 本地文件
    * trash:/// - 本地回收站目录
    * ftp:// - FTP 文件夹
    * ssh:// - SSH 文件夹
    * fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装
    * themes:/// - 系统主题文件夹
    * 显示隐藏文件: Ctrl+h
    * 显示地址栏: Ctrl+l
    * 查看已安装字体: 在 nautilus 的地址栏里输入”fonts:///“,就可以查看本机所有的 fonts`  
    
Vi Etc/network/interfaces · 在 Debian 及其衍生版本中,hostname 都可以通过一下方式修改。众所周知,Linux 的一切都
是存在于文件当中的,事实上 UNIX 是这种哲学的创立者。Debian 中 hostname 存在于以下文
件。
/etc/hostname

10.作业挑战-搭建Ghost博客系统


资料链接
https://iiong.com/gost-blog-install-notes/
https://blog.csdn.net/qq_35974759/article/details/84858358

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,364评论 1 39
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 8,733评论 1 21
  • 一、什么是docker容器? 容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁。隔离的环境拥有自己的...
    Jzyue阅读 364评论 0 1
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,382评论 0 27
  • 加我四个人,对面宿舍三个人的舍裙到了,下午都穿上了,于是我独自一人穿着大众牛仔裤走在她们中间。 此时山花烂漫已过,...
    独行向日葵阅读 338评论 0 1