书评网站的源码分享 书评最好的网站

这篇文章给大家聊聊关于书评网站的源码分享,以及书评最好的网站对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

前言

最近书读得不少,但是能进脑子的不多,这本书读完也有两个星期了想着再不拿出来回忆一波就完全白送了。毕竟实战的机会不多,更多的还得靠脑子想。为了看一下自己脑子装的是浆糊还是水,写这篇笔记时尽可能不看资料,不翻原书,纯手工编写,不做CV搬运工。

书评

总的来说这是一本不错的书,应该是一本入门比较好的书籍了(虽然我学得不怎么样…)。单纯看官网的时候一脸懵逼,完全不知道在说什么,看完这本书了之后,至少对docker有了一个较为清晰的认识,相信自己也算是半只脚入了门。

docker简介与核心概念

docker是一个基于linux虚拟化的容器技术。与传统VMware之类基于操作系统的虚化不同,docker提供的是基于应用程序的虚拟化,因此docker无论是性能还是速度都是非常厉害。

docker里面有许多概念,但这些概念与我们常用的技术还是比较相似的,多多少少可以从平常的使用或者看到的内容中看到一些相似的影子。当我们需要安装一个操作系统时,我们通常会使用“系统镜像”来安装。在docker中也是一样,我们需要运行一个容器,则我们需要先有一个镜像(image)。镜像想要在互联网上快速分发,就需要一个统一的资源仓库,这个官方的资源仓库就是dockerhub。镜像往资源库的上传、下载操作,就像源代码的拉取推送操作。除此之外docker还有文件与网络等一些比较重要的内容。

docker镜像

当我们需要指定一个镜像时,我们需要用仓库+名称+标记来标识,如果是docker官方的仓库则使用名称+标记即可,而标记通常使用的是版本号。当然如果不用版本号也可以,它表示了我们将使用最新版本(latest)。当然docker并不建议使用latest,因为latest代表的永远是最新的版本,这是一个变化的版本,在生产环境中更需要一个稳定的场景。

docker镜像操作非常之多,想要全部精通还是不容易的。沿着增删改查的思路,梳理一下镜像操作。

查询操作

dockerimages查询镜像列表dockerinspect【IMAGENAME】查询单个镜像内容

拉取镜像

dockerpull【IMAGE】

删除镜像

dockerrmi【IMAGENAME】删除镜像dockerimagerm【IMAGENAME】删除镜像

构建镜像

dockerbuild利用dockerfile构建镜像

还有一些其它操作,比如说导入导出用于镜像文件拷贝传递之类操作等等。

docker容器

容器是docker最核心的概念,

查看容器

dockerps[-a]查看所有的容器(-a可以看到未运行的容器)dockerinspect【CONTAINERNAME】查看容器的明细信息

启停容器

dockerstart【CONTAINERNAME】启动容器dockerstop【CONTAINERNAME】停止容器dockerrun【IMAGE】拉取镜像并启动

dockerrun是平时自己玩的时候使用最多的命令,从0到1一步到位直接启动容器。

删除容器

dockerrm【CONTAINERNAME】

网络

网络是docker在使用中比较重要的部分之一,docker提供了三种网络模式bridge、host、null,其中host是主机共享模式,也就是直接使用主机网卡与网络;bridge是桥接模式,也是最为常见的一种网络模式。

桥接模式既可以提供网络隔离也可以提供网络共享,因此桥接模式的使用也是最广泛的。

查看网络

dockernetworkls查看网络列表dockernetworkinspect【NAME】查看网络明细

网络隔离的实现

当我们新建一个桥接网络(或者使用默认的桥接网络)时,该网络会分派一段子网ip地址,例如我环境中的docker0的子网为172.17.0.1/16。由于是子网,所以在默认的情况外部是无法访问到该子网的。如果我们建立多个不同的桥接网络时,这些网络也将会相互相互不连通从而达到网络隔离。

每次新建一个容器并使用桥接网络时,docker会分派一对虚拟网卡,进行1对1通讯,一个在容器内部,一个在容器的外部。在容器内外可以通过ipaddr命令查看网卡信息,可以看到匹配的网卡。

主机上使用ipaddr查看

容器内使用ipaddr查看

跨主机互联

桥接模式通过子网的方式提供内部网络,而子网是不能直接与主机外部网络通信的,想要通信则需要网络转发,这也就是nat。nat全名networkaddresstranlation将内部容器对外的请求和外部对内部容器的请求进行翻译处理,例如当子网访外网时,主机的nat将请求的请求ip地址改为了主机的ip地址。

在容器启动时,可以通过参数-P或者-p指定端口,此时会在nat表产生相关的记录。可以通过sudoiptables-tnat-nvL查看。

sudoiptables-tnat-nvL

文件与数据

除了网络的使用,docker也会使用文件系统。docker是通过UFS(联合文件系统)来实现的文件管理。将文件分为一层一层的,这个从镜像拉取时比较明显。而这些层都是只读的,最后会在上面加上一个可写层构成最终的文件系统。虽然docker的联合文件系统号称高性能,但是跟直接进行文件读写操作性能还是差了太多。

除了性能较差之外,docker容器内部的文件会随着docker容器删除而消息,这对于一些重要的数据文件(比如数据库),是不可接受的。因此docker提供了相应方案可以让文件直接放在主机上,再挂载到容器中,这就是数据卷。

数据卷命令

dockervolumels查看数据卷列表dockervolumeinspect【卷ID】查看卷详细信息dockervolumecreate创建数据卷dockervolumerm删除数据卷

常规的数据卷的指定在dockerfile中就完成了,不需要启动容器的单独处理。

数据卷数据位置

在主机上数据卷的位置可以从dockervolumeinspect中看到,默认为/var/lib/docker/volumes/{卷ID}/_data这个路径。而在容器内部的地址则可以通过dockercontainerinspect查看容器信息中的mounts节点可以看到。例如mysql,内部映射的地址为/var/lib/mysql。

结尾

docker的内容很多,留下深刻印象的也就是以上的一些东西了。像仓库与私有化部署、数据卷容器等等之类的东西大多只能记住是干什么的了。而像compose、wasm、k8s之类由于没有实战机会,估计学起来会更加困难了。

关于书评网站的源码分享和书评最好的网站的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

站内搜索