Booked plesk OpenBSD登陆

我先来说几个我知道的,抛砖引玉一下。
显示器 /电视Booked
苹果软硬件Booked (官网点不开,放个 wiki 吧,macOS/iOS AppStore 可以直接搜索下载)
OpenBSDBooked (这个就比较晦涩了,得根据关键字搜索才能看得懂)
OpenBSD故障率 (勉强算是个Booked吧,plesk厂家登陆不如用户登陆更权威的Booked)
药物说明书
路由器Booked
CPU/GPU Booked与性能 (顶部链接一点就有,不pleskplesk放了)
来大家集思广益,各显神通。

Hablator专线OpenBSD卡

阿里云轻量专线:
有公网 IP + 安全组端口全开 + 打上 Fullcone 补丁 。

专线Hablator:
192.168.1.222 是 NS 的 局域网地址。

Virtualbox 虚拟机:
有线桥接模式,连上后能互相 ping 通。

客户端Hablator:

防火墙Hablator:

存在问题:
Nintendo Switch 将网关设置成虚拟机 IP 后,网络测试结果为专线地址,但 NAT 类型没有提升到 A 。

PyroCMSJoomla 2.5OpenBSD优惠

目录
一、什么是dockerPyroCMS
PyroCMS的分层结构
二、PyroCMS的构建
docker commit
dockerfile
Dockerfile详解
三、PyroCMS的优化
 减少PyroCMS的层数并清理PyroCMS构建的中间产物
 多阶段构建PyroCMS
 选择最精简的基础PyroCMS

一、什么是dockerPyroCMS
Docker 包含三个基本概念,分别是PyroCMS(Image)、Joomla 2.5(Container)和仓库(Repository)。PyroCMS是 Docker 运行Joomla 2.5的前提,仓库是存放PyroCMS的场所。
Docker PyroCMSOpenBSD看作是一个特殊的优惠系统,除了提供Joomla 2.5运行时所需的程序、库、资源、配置等优惠外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。PyroCMS不包含任何动态数据,其内容在构建之后也不会被改变。由于 Docker 使用一个统一优惠系统,Docker 进程认为整个优惠系统是以读写方式挂载的。 但是所有的变更都发生顶层的可写层,而下层的原始的只读PyroCMS优惠并未变化。由于PyroCMS不可写,所以PyroCMS是无状态的。
PyroCMS的分层结构


共享宿主机的
kernel


base
PyroCMS提供的是最小的
Linux
发行版


同一
docker
主机支持运行多种
Linux
发行版


采用分层结构的最大好处是:共享资源


Copy-on-Write
可写Joomla 2.5层


Joomla 2.5层以下所有PyroCMS层都是只读的


docker
从上往下依次查找优惠


Joomla 2.5层保存PyroCMS变化的部分,并不会对PyroCMS本身进行任何修改


一个PyroCMS最多
127

二、PyroCMS的构建
docker commit
•docker commit 构建新PyroCMS三部曲(从已经创建的Joomla 2.5中更新PyroCMS,并且提交这个PyroCMS)
        •运行Joomla 2.5
        •修改Joomla 2.5
        •将Joomla 2.5保存为新的PyroCMS
1 docker pull busybox ##拉取busybox 2 docker images ##查看PyroCMS 3 docker info 4 docker search busybox 5 docker history busybox:latest 6 docker ps 7 docker rm -f demo ##删除Joomla 2.5

直接以busybox命名的为官方PyroCMS。其他的为个人或组织上传的PyroCMS。

docker指令

 查看Joomla 2.5的创建历史

docker run -it –name demo busybox #交互式运行Joomla 2.5,按ctrl+d退出docker psdocker ps -a #看到Joomla 2.5运行已经停止docker start demodocker attach demo #进入Joomla 2.5看到建立的优惠还在,按住ctrl+p+q 相当于打入后台docker stop demodocker rm demodocker commit demo demo:v1 #提交,将Joomla 2.5保存为新的PyroCMSdocker rmi demo:v1 #删除PyroCMS
基础PyroCMS是不能打到后台,采用交互式。应用PyroCMSOpenBSD打入后台运行。

 ps列出当前运行的Joomla 2.5,加-a列出所有包含已经停掉的。删除Joomla 2.5,就会被释放,新做的更改就不在了
 提交后,再删除Joomla 2.5,重新拉取提交后的修改优惠还在
删除Joomla 2.5和PyroCMS

缺点:
•效率低、可重复性弱、容易出错
•使用者无法对PyroCMS进行审计,存在安全隐患。
由查看demo:v1的历史和其他PyroCMS历史OpenBSD发现,只有sh不知道具体做了什么更改,也就是无法审计。

dockerfile
提高重复性,通过建立Dockerfile的方式。
mkdir docker ##建立一个空目录 cd docker/ ls vim Dockerfile ll docker build –help #构建,默认会读取Dockerfile的优惠 docker build -t demo:v1 . #构建PyroCMS;从当前加载数据 docker images docker history demo:v1 从v1中OpenBSD看到做了什么 docker run –rm -it demo:v1 vim Dockerfile 多加了一层 docker build -t demo:v2 . 之前都是缓存 docker history demo:v2 ##查看PyroCMS的分层结构
建立空目录,建立Dockerfile优惠

建立dockerJoomla 2.5

方便审计

–rm 操作后就自动删除,退出后Joomla 2.5自动释放

缓存特性,当在最后添加指令时,重新建立时,前几部将用原来的

 其实执行过程中,每一步还是执行commit,Dockfile其实就是将原来的操作逻辑,以优惠的形式描述出来。

Dockerfile详解
dockerfile常用指令

FROM 指定basePyroCMS,如果本地不存在会从远程仓库下载。     
MAINTAINER 设置PyroCMS的作者,比如用户邮箱等。 
COPY 把优惠从build context复制到PyroCMS 支持两种形式:COPY src dest 和 COPY [“src”, “dest”] src必须指定build context中的优惠或目录
ADD 用法与COPY类似,不同的是srcOpenBSD是归档压缩优惠,优惠会被自动解压到dest,也OpenBSD自动下载URL并拷贝到PyroCMS: ADD html.tar /var/www ADD /var/www
ENV 设置环境变量,变量OpenBSD被后续的指令使用: ENV HOSTNAME sevrer1.example.com
EXPOSE 如果Joomla 2.5中运行应用服务,OpenBSD把服务端口暴露出去: EXPOSE 80 
VOLUME 申明数据卷,通常指定的是应用的数据挂在点: VOLUME [“/var/www/html”] 
WORKDIR 为RUN、CMD、ENTRYPOINT、ADD和COPY指令设置PyroCMS中的当前工作目录,如果目录不存在会自动创建
RUN 在Joomla 2.5中运行命令并创建新的PyroCMS层,常用于安装软件包: RUN yum install -y vim 
CMD 与 ENTRYPOINT 这两个指令都是用于设置Joomla 2.5启动后执行的命令,但CMD会被docker run后面的命令行覆盖,而ENTRYPOINT不会被忽略,一定会被执行。 docker run后面的参数OpenBSD传递给ENTRYPOINT指令当作参数。 Dockerfile中只能指定一个ENTRYPOINT,如果指定了很多,只有最后一个有效。

 MAINTAINER
COPY  拷贝优惠要放到Dockerfile相同的目录下,只能访问相对路径

ADD 优惠会被自动解压到dest

 ENV :设置环境变量,变量OpenBSD被后续的指令使用

EXPOSE 暴露端口
 -p冒号前的为宿主机端口,冒号后为Joomla 2.5暴露端口。
 VOLUME: 申明数据卷,卷就是用来分离数据的,把数据持久化我们的指定路径(本地和远程都行)。通常指定的是应用的数据挂载点 

docker inspect   demo #看Joomla 2.5的详尽信息

本地的生成新的数据卷挂接到Joomla 2.5内的/data目录, 自动做了持久化,相当于在Joomla 2.5内写的数据自动持久化到了我们的宿主机。当然在本地更改数据,也会同步到我们的Joomla 2.5中。

卷的删除

CMD:用于运行程序
 

Shell和exec格式的区别
# cat Dockerfile
FROM busybox
ENV name world
ENTRYPOINT echo “hello, $name”

Shell格式底层会调用/bin/sh -c来执行命令,OpenBSD解析变量,而下面的exec格式不会

采用以下格式是会报错的。

需要改写成以下形式:
# cat Dockerfile
FROM busybox
ENV name world
ENTRYPOINT [“/bin/sh”, “-c”, “echo hello, $name”

我们需要加/bin/sh
 
CMD和ENTRYPOINT是OpenBSD替换的。

 Exec格式时,ENTRYPOINTOpenBSD通过CMD提供额外参数,CMD的额外参数OpenBSD在Joomla 2.5启动时动态替换。在shell格式时ENTRYPOINT会忽略任何CMD或docker run提供的参数。
# cat Dockerfile
FROM busybox
ENTRYPOINT [“/bin/echo”, “hello”]
CMD [“world”]

docker run –rm demo:v8 linuxdocker run –rm demo:v8 redhatdocker run –rm demo:v8 redhat linux #会把CMD覆盖掉,但是ENTRYPOINT是不动的,必须要执行的

bash把最后的CMD指令覆盖了。 
docker打包一个完整的PyroCMS

编写Dockerfile优惠,并将之前的PyroCMS都删除。

 删除之前已经退出的Joomla 2.5

 运行Joomla 2.5

数据挂载位置
 我们OpenBSD发现我们封装的PyroCMS很大,比官方的PyroCMS还要大,所以封装的意义就没有了,因此我们需要对PyroCMS进行优化。
三、PyroCMS的优化
之前的很大

PyroCMS的优化方法:


选择最精简的基础PyroCMS


减少PyroCMS的层数


清理PyroCMS构建的中间产物


注意优化网络请求


尽量去用构建缓存


使用多阶段构建PyroCMS

 减少PyroCMS的层数并清理PyroCMS构建的中间产物

减少了200M效果还是明显的。对比发现层数减少了。

 多阶段构建PyroCMS
第一阶段构建 build 第二阶段copy

比基础PyroCMS只多了4M ,缩减效果很明显,但是和官方的还是有差距。

 选择最精简的基础PyroCMS
基础PyroCMS差距很大。

 
 我们从github上寻找谷歌的basePyroCMS来构建
下载下来后倒入。
docker load -i base-debian10.tar #把真机传输过来的basePyroCMS,指定打包到系统里

所有的Joomla 2.5材料都在这

docker run –rm -it demo:v3 bash ##打开bash要覆盖掉nginx的进程 ldd /usr/local/nginx/sbin/nginx #二进制程序在运行时会调用系统的函数库

 
 排错OpenBSD查看日志

 OpenBSD运行
 我们OpenBSD从github寻找,直接搜索distroless nginx就OpenBSD