05 2020 档案
摘要:
dockerfile的格式,dockerfile是一个纯文本文件,我们可以理解为构建镜像的源码;不同于其他编程语言,dockerfile里没有if else 没有循环,它里面仅仅有注释和构建镜像的指令;对于dockerfile注释就是以井号开头的行为注释,这个和shell和其他配置文件的语法一样;除此之外dockerfile里就只有指令了;严格的讲指令是不区分字符大小写的,通常我们约定俗成指令都是纯大写;除此之外在dockerfile的第一非注释行必须是FROM开头来明确的说明我们在基于那个镜像为基础镜像做镜像;
阅读全文
摘要:
docker容器把资源抽象成对象;作为客户端,docker这个命令其实就是在对这些抽象出来的资源对象做增删查改的操作;docker的API是RESTful风格的API,所以它支持类似像http协议里的GET、POST、PUT、DELETE等操作;RESTful风格的API有这样的特点;1、每一个URI代表1种资源;2、支持类似http里的GET、POST、PUT、DELETE;GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;3、通过操作资源的表现形式来操作资源;4、资源的表现形式是XML或者HTML;5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
阅读全文
摘要:
卷为docker提供了独立于容器的数据管理机制;我们可以把镜像想象成静态文件,例如程序,把卷类比成动态内容,比如数据,于是镜像可以复用,而卷可以共享;卷实现了程序(镜像)和数据(卷)的分离;实现了容器之间的数据共享和复用,使得容器间传递数据变得高效方便;对数据卷内数据的修改会立马生效,无论是在容器中修改还是在本地操作;docker有两种类型的卷,每种类型都在容器中存在一个挂载点,但其在宿主机上的位置有所不同而已;bind mount volume这种卷是由用户指定目录把存储上的一个目录挂载到容器内部的某个目录;docekr-managed volume这种卷是docker自己管理的卷,通常表现形式上把宿主机上的/var/lib/docker/vfs/dir/某个卷的ID 挂载到容器内部某个目录下;
阅读全文
摘要:
默认情况下启动docker容器都是bridge网络,桥接到docker0桥;对于docker容器来讲,各个容器之间的网络上相互隔离的;相互隔离就表示在第一个容器里监听某个端口,对于第二个容器是不可见的;对于宿主机来讲,两个容器的网络都是共享docker0桥的网络;同时在宿主机上的网络名称空间中是可以看到两个容器的虚拟接口是连接到docker0桥的;所以默认情况启动的容器相互之间是可以基于docker0来通信;我们可以把docker0桥理解成连接两个容器的交换机;
阅读全文
摘要:
在docker容器里运行的服务必须前台运行,如果后台运行会导致容器一启动就退出了,原因是容器内部本身就只有一个进程在跑,如果你后台运行,就没有进程在前台,所以docker会认为该容器已经宕机;其实我们可以理解为容器内部前台跑的程序是支撑整个容器为运行态的重要骨架;
阅读全文
摘要:
在docker容器里通常只会有一个进程和该进程的子进程,通常该进程的进程编号为1,这也就说明了如果docker容器里进程编号为1的进程宕了,那么该容器也就随之宕掉;docker的镜像是采用的一种“分层构建,联合挂载”的方式实现;将不同功能的镜像通过一定的层次结构进行挂载,组合成一个新的镜像;在docker启动为容器时,它会在该镜像的最上层加上一个可写层;这使得我们可以在容器内部修改某些数据;而保存修改后的数据只会对当前容器有效,如果在用同一镜像启动为其他容器时,我们修改的数据在后面的容器是不存在的,原因就是镜像的每一层都是只读的;只有镜像运行为容器时才会有一层可写层,而该可写层只针对该容器生效;
阅读全文
摘要:
前一篇博文中主要说了下,lxc容器在Linux上的简单管理,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12901493.html;今天我们来介绍下lxc的图像管理工具LXC WEB Panel;
项目下载地址:https://github.com/lxc-webpanel/LXC-Web-Panel.git;
1、安装python-flask
阅读全文
摘要:
什么是容器?在生活中我们常见的容器有各种瓶瓶罐罐、各种能够容纳其它物料的东西叫容器;容器的特点就是有着很好的隔离作用,使得不同的物料互相隔离;除此之外容器还方便运输、方便储存;这是生活中所说的容器,以及它的特点;在计算机领域中,所谓容器不外乎也有同生活中的容器的特点,隔离,方便“运输”(计算机中的运输我们叫移植,从系统A到系统B),方便“存储”(这里指程序以及运行所依赖的库文件打包,即程序及运行时环境打包);
阅读全文
摘要:
首先我们来看一下haproxy的https的配置;https是什么我这里就不过多阐述了,有关证书的申请相关说明请参考https://www.cnblogs.com/qiuhom-1874/p/12237944.html;在haproxy的配置文件中,我们要明确的声明监听某个端口,该端口需要ssl协议来访问,类似nginx里的listen 443 ssl配置;除此之外我们还需要用crt来指定证书;不同于nginx里的配置是haproxy的证书内容包含私钥信息;所以在我们申请好证书后,还需要把证书文件内容同私钥文件做合并;
阅读全文
摘要:
ACL(access control list)翻译过来就是访问控制列表;相信ACL这个词对大家都不是太陌生;Linux里的权限里有ACL,httpd、nginx、varnish里都有ACL的概念;访问控制列表(ACL)的使用提供了一个灵活的解决方案来执行内容切换,并通常根据从请求、响应或任何环境状态提取的内容做出决策。haproxy中访问控制实现和httpd、nginx、varnish中的访问控制类似,都是先扑捉用户的请求报文或响应报文,或者其他环境状态的信息来把客户端分类;然后把该ACL作为条件判断,把不同类别或者说符合我们定义ACL的客户端做其他操作;
阅读全文