首页
Optimus-Xs' Blog
取消

如何优雅的编写Dockerfile

容器需要从Dockerfile开始,本文将介绍如何写出一个优雅的Dockerfile文件。 Docker容器 容器的特点 我们都知道容器就是一个标准的软件单元,它有以下特点: 随处运行:容器可以将代码与配置文件和相关依赖库进行打包,从而确保在任何环境下的运行都是一致的。 高资源利用率:容器提供进程级的隔离,因此可以更加精细地设置CPU和内存的使用率,进而更好地利用服务器的计算...

Portainer 在 VPS 的部署流程

介绍 Portainer 是一个轻量级的管理 UI ,可让你轻松管理不同的 Docker 环境(Docker 主机或 Swarm 群集)。它由可在任何 Docker 引擎上运行的单个容器组成 Portainer 由两个元素组成,Portainer Server和Portainer Agent 。这两个元素在 Docker 引擎上作为轻量级 Docker 容器运行。本文档将帮助您在 Linu...

Proxmox VE直通硬盘

使用PVE有时为了方便,需要将硬盘直通, PVE系统直通硬盘有两种方式,方法一命令操作,直通单块硬盘;方法二添加 PCI设备,直通 SATA Controller(SATA 控制器)。 全盘映射 查找磁盘ID 进入Proxmox VE(PVE)系统的SSH,或直接进入PVE管理网页Shell 输入命令: ls -l /dev/disk/by-id/ lrwxrwxrwx 1 roo...

4种强化域名安全的协议

传统的 DNS 有啥问题 传统的 DNS 是一个【比较古老】的协议。最早的草案可以追溯到1983年。1987年定稿之后,基本上没啥变化。 设计 DNS 的时候,互联网基本上还是个玩具。那年头的互联网协议,压根儿都没考虑安全性,DNS 当然也不例外。所以 DNS 的交互过程全都是【明文】滴,既无法做到“保密性”,也无法实现“完整性”。 缺乏“保密性”就意味着——任何一个能【监视】你上网流量...

Gin 中的 BasicAuth授权认证中间件使用

什么是BasicAuth 是一种开放平台认证方式,简单的说就是需要你输入用户名和密码才能继续访问。 在单路由中使用 如果需要针对单个路由使用,在要在单路由中注册BasicAuth 中间件即可。 // 使用BasicAuth中间件 func main(){ engine := gin.Default() // 设置账号和密码,key:代表账号,value:代表密码 ginAccoun...

海量积分数据实时排名处理方式

需求概述 积分排名在很多项目都会出现,大家都不会陌生,需求也很简单,积分排名主要满足以下需求: 查询用户名次。 查询TopN(即查询前N名的用户) 实时排名(很多项目是可选的) 当排序的数据量不大的时候,这个需求很容易满足,但是如果数据量很大的时候比如百万级、千万级甚至上亿的时候,或者有实时排名需求;这个时候要满足性能、低成本等需求,在设计上就变得复杂起来了 常规积分排...

堆的原理和实现

堆 堆这种数据结构,有很多的实现,比如:最大堆,最小堆,斐波那锲堆,左派堆,斜堆等。从孩子节点的个数上还可以分为二叉堆,N叉堆等。本文我们从最大二叉堆堆入手看看堆究竟是什么 什么是堆 我们先看看它的定义 堆是一种完全二叉树(不是平衡二叉树,也不是二分搜索树哦) 堆要求孩子节点要小于等于父亲节点(如果是最小堆则大于等于其父亲节点) 满足以上两点性质即可成为一棵合格的堆数据结构...

DNS 协议解析流程

报文分析 例子: 名称服务器 (nameserver) 地址为 192.168.18.135。 该名称服务器管理了一个区域 (zone),区域的名称为 example.com.。 环境中有一台用户终端,地址为 192.168.18.136,其在名称服务器中添加了一条解析记录,记录为 user.example.com,该记录的值为本机的地址。 +----------------+ qu...

DNS报文格式

我们知道查询一个域名,需要与 DNS 服务器进行通信。那么,DNS 通信过程大概是怎样的呢? DNS 是一个典型的 Client-Server 应用,客户端发起域名查询请求,服务端对请求进行应答: DNS 一般采用 UDP 作为传输层协议( TCP 亦可),端口号是 53 。请求报文和应答报文均作为数据,搭载在 UDP 数据报中进行传输: 很显然,DNS 请求报文和应答报文均需...

Linux Golang 安装流程

Go,通常被称为 golang,它是一门由 Google 创建的现代化的开源编程语言,它允许你构建实时并且高效的应用。 很多流行的应用程序,例如 Kubernetes,Docker,Prometheus 和 Terraform,都是使用 Go 来编写的。 这篇教程讲解如何在 Ubuntu 20.04 上下载和安装 Go。 下载 Go 压缩包 在写这篇文章的时候,Go 的最新版为 1.1...