开源实例之Docker健康检查 前言 本篇介绍通过 Docker 健康检查(HEALTHCHECK)来实现严格顺序启动,以及可用性判断。 应用场景 假设一个 web 应用需要运行多个容器,容器之间存在依赖关系。这就有两个问题,一是如何保证容器的启动顺序,二是如何监控 web 应用已经整体完成启动。 举例来说,MongoDB 管理工具mongo-express实例需要运行两个容器:MongoDB 容器和 Node.js 容器。需要先启动 MongoDB(含数据),再启动 Node.js(含项目程序),最终 web 暴露在 8081 端口。 一般解决方案 按照一般方案,用depends_on来控制容器启动顺序,根据 http 请求端口返回状态来判断是否启动完成。docker-compose.yml 如下: version: '2.4' services: mongodb: image: dujunio/mongo... 2023-02-21
开源实例之自建服务器上篇:云服务器 前言 本系列实例需要较高的服务器配置,否则同时运行多个实例很容易宕机。在研究了各种云服务器、物理服务器的部署方案之后,最终使用工控小主机自建服务器。因篇幅较长,分为上中下三篇: 上篇:云服务器 中篇:物理服务器 下篇:工控机部署 本篇介绍对云服务器的调研。 云服务器介绍 云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。 简单来说,云服务器是在物理服务器上通过虚拟化技术构建的虚拟服务器,一台物理机可以被分割成多台云服务器。各大厂商对云服务器的名称各不相同,比如腾讯云叫 CVM(Cloud Virtual Machine),阿里云叫 ECS(Elastic Compute Service),亚马逊云叫 EC2(Elastic Compute Cloud)。 云服务器的优势当然是安全稳定... 2023-02-16
开源实例之 Docker Hub 镜像仓库 前言 随着部署的开源项目实例越来越多,服务器硬盘不可避免地不够用了。所以又调整了策略,将镜像提交到 Docker 官方仓库,本地定期删除镜像,需要时再拉取。 Docker Hub 介绍 Docker Hub is a service provided by Docker for finding and sharing container images with your team. It’s the world’s largest repository of container images with an array of content sources including container community developers, open source projects and independent software vendors (ISV) building and dis... 2023-02-01
亚马逊云免费服务器用了近半年,很稳当,直到刚才发现一月份有 0.01 美元的费用。看账单是美国跨区域数据传输造成的流量费用,没搞明白怎么回事,我应该没有主动的相关操作。 先赶紧把信用卡的境外支付锁了。明天就是新的月份,不知道会不会被停机。 2023-01-31
听到窗外鞭炮声,一个送丧队伍从村里经过。三周以来,这是第三个我亲眼所见的村里人(或是邻村)过世。据传现在市里火葬场紧张,要排队。可能晚上名额好拿一点,送丧也都是深夜。 我这次阳了几乎没有症状,最高 37.8 度,前几天已经阴了。但是老妈反复告诫我注意,现在到处在传谁谁阳康后洗了个头就死了。三年疫情,对工作生活产生了巨大影响,不过身边其实没发生过大事。放开之后突然“死亡”就离得这么近,甚至有些人听起来很儿戏就死了。比如前几周村里有个爱喝酒的人,喝了酒坐着猝死了。当然不都是因为新冠,只是大家都给眼下的苦难找了这个理由吧。 2023-01-10
开源实例之LXD 前言 LXD is a next generation system container and virtual machine manager. It offers a unified user experience around full Linux systems running inside containers or virtual machines. LXD is image based and provides images for a wide number of Linux distributions. It provides flexibility and scalability for various use cases, with support for different storage backends and network types and the opt... 2023-01-09
开源实例之webman 前言 本篇是对《开源实例之多项目部署方案》中 webman 部分的展开。 webman的介绍 webman是一款基于workerman开发的高性能HTTP服务框架。webman用于替代传统的php-fpm架构,提供超高性能可扩展的HTTP服务。你可以用webman开发网站,也可以开发HTTP接口或者微服务。 除此之外,webman还支持自定义进程,可以做workerman能做的任何事情,例如websocket服务、物联网、游戏、TCP服务、UDP服务、unix socket服务等等。 官网地址:https://www.workerman.net/webman webman的理念 以最小内核提供最大的扩展性与最强的性能。 webman仅提供最核心的功能(路由、中间件、session、自定义进程接口)。其余功能全部复用composer生态,这意味着你可以在webman里使用最熟悉的功能组件,例... 2022-12-12
开源实例之Nginx 前言 本篇是对《开源实例之多项目部署方案》中 Nginx 部分的展开。 Nginx的介绍 nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. Nginx 是轻量级的 HTTP 和反向代理 WEB 服务器。它资源占用少、高并发能力强,在互联网项目中广泛应用。Nginx 也就是常说的 LNMP 架构中的 N。 Nginx的应用 本系列的开源项目实例容器,由 Nginx 协助完成自动重建功能。主要利用的特性是,容器未创建或已停止时,HTTP 状态码返回 502,由此做重建分发。 以 WordPress 项目为例: 分发流程 项目落地页:https://word... 2022-12-09
开源实例之Podman 前言 Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Podman(Pod Manager tool)是 RedHat 推出的,无守护进程、不依赖 root 的容器管理工具,是 Docker 的“无痛”替代品。 官网地址是https://podman.io Podman 的诞生 Podman 的诞生是一种必然,或者说,即便不是 Podman,也必然会出现另一款替代 Docker 的产品。这里面政治斗争或许大于技术因素。 在 Docker 一家独大的时候,Google 的 Kubernetes 是最... 2022-12-06