GaGa's Blog

One GaGa, One World !

docker-compose定义容器IP

1.声明network网络信息,容器自定义IP

services:
  app:
    image: nginx
    networks:
      mynet:
        ipv4_address: 172.28.1.5
networks:
  mynet:
    driver: bridge
    ipam:
      config:
        - subnet: 172.28.0.0/16

2.使用外部网络

Read more »

Groovy 需要安装 JDK (Java Development Kit) 才能运行。

原因

  1. Groovy 是基于 JVM 的语言:Groovy 代码最终会被编译成 JVM 字节码,因此需要 Java 运行时环境。

  2. 运行时的依赖

    • Groovy 需要 Java 的核心类库
    • Groovy 编译器 (groovyc) 需要 JDK 而不仅仅是 JRE

版本要求

Read more »

一、前提条件

  1. Rocky Linux 9 已更新且有一个非 root 用户(拥有 sudo 权限)。

  2. 安装以下系统包:

    1
    sudo dnf install -y uidmap dbus-user-session

    uidmap 提供 newuidmap/newgidmapdbus-user-session 用于用户级 systemd/session 支持。

  3. 确认 /etc/subuid/etc/subgid 为普通用户分配了至少 65536 个 subordinate UIDs/GIDs,例如:

    testuser:231072:65536
    

    可通过:

    1
    grep ^$(whoami): /etc/subuid /etc/subgid

    验证是否正确配置


二、安装 Docker Engine(rootful)

Read more »

LoongCollector 是 iLogtail(Logtail)的升级版,在性能、稳定性、功能等方面进行了全面升级 。

阿里云日志采集组件loongcollector

区别

    1. 性能提升:LoongCollector 相比 iLogtail,在 CPU 使用率平均降低 35%,内存占用平均降低 10%,核心场景极限采集速率平均提升 80%,文件采集场景中单线程和多线程采集性能均有显著提升(单线程平均提升 40%,极简场景提升 80%,多线程场景平均提升 80%),标准输出采集性能在 containerd 和 Docker 环境下分别提升 200% 和 100% 。
    1. 稳定性与可靠性:LoongCollector 支持网络异常隔离机制(如多地域日志发送时,异常地域链路会被智能隔离,不影响其他正常地域的数据发送),增强了整体数据传输稳定性和时效性 。
    1. 功能扩展:LoongCollector 实现了从日志到全面数据可观测的升级(如采集 Kubernetes 元数据、主机系统指标等),并优化了 Tag 处理能力,支持实例级别元信息的添加、删除和重命名操作,C++ 和 Go 的标签处理机制完全一致 。
    1. 兼容性:LoongCollector 完全兼容 iLogtail 的所有配置内容,支持从 iLogtail 无缝升级,升级后采集配置、checkpoint 等不会丢失 。
Read more »

结论

ALB绑定ECS实例后,默认情况下ECS实例会自动放行来自ALB的流量,不需要额外配置安全组规则。但前提是ECS实例使用的安全组必须是普通安全组(包括默认安全组),因为普通安全组默认允许来自同一VPC内的流量。

详细解释

  1. ALB与ECS的通信机制

    • 当您将ECS实例绑定到ALB后,ALB会通过VPC内部网络将请求转发给ECS实例。
    • 此时,流量源地址是ALB的私网IP地址,属于VPC内部通信
  2. 普通安全组(包括默认安全组)的默认行为

    • 普通安全组在入方向默认允许来自同VPC内其他ECS实例的流量(即组内互通)。
    • 因此,来自ALB的转发流量(属于VPC内部流量)会被自动放行,无需手动添加安全组规则
  3. 企业级安全组的例外情况

    • 如果ECS实例使用的是企业级安全组,则默认情况下入方向和出方向的流量都会被拒绝
    • 在这种情况下,您需要手动添加安全组规则,允许来自ALB的私网IP地址范围的流量。
  4. 安全组最佳实践

    • 虽然普通安全组默认允许VPC内部流量,但为了更高的安全性,建议您根据业务需求限制入方向的流量源,例如只允许特定的ALB私网IP或IP段访问。
    • 如果使用的是企业级安全组,务必添加以下规则:
      协议类型 端口范围 授权对象 授权策略
      TCP 应用监听端口(如80、443) ALB私网IP段(如192.168.x.0/24) 允许
Read more »

问题

powershell    . : 无法加载文件 C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,因为在此系统上禁
止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.Power ...
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

错误是因为 PowerShell 的执行策略(Execution Policy)阻止了脚本的运行。默认情况下,PowerShell 的执行策略可能设置为 Restricted,这会禁止所有脚本的执行。

解决

Read more »

牛腱子这种筋多肉厚的部位,用高压锅压的话时间要看你是 冷水下锅还是开水下锅、以及 高压锅的类型(普通老式高压锅 vs 电压力锅)。

参考时间:

状态 高压锅时间(上汽后开始计时) 备注
冷水下锅,普通高压锅 35~40 分钟 肉软烂,筋基本化开
冷水下锅,电压力锅 40 分钟左右 可用“牛肉/蹄筋”档
开水下锅,普通高压锅 25~30 分钟 更快锁住肉汁
开水下锅,电压力锅 30 分钟左右 口感更筋道一点
想做成卤牛腱 压 25~30 分钟,关火焖 30 分钟 更入味不柴

小技巧

Read more »

在Rocky Linux 9 上,通过 Podman 实现 rootless(无特权用户)部署 是原生支持且稳定可靠的解决方案。


一、为什么选择 Podman?

  • Podman 是 Red Hat 开发的无守护进程容器引擎,本身即支持 rootless 容器运行,不依赖 root 权限。
  • CLI 几乎完全兼容 Docker,因此大多数 docker 命令可直接替代使用。
  • 与 systemd 集成优异,推荐通过 Quadlet 或 podman generate systemd 管理容器服务。
Read more »

概述

  • 通过不同操作系统,下载依赖包制作离线源通过nginx提供yum服务。

1.构建阶段:构建 CentOS 7.4

  • FROM centos:7.4.1708 AS build0

  • 设置环境变量:

    • EPEL_RELEASE=https://dl.fedoraproject.org/.../epel-release-latest-7.noarch.rpm
    • DOCKER_REPO=https://download.docker.com/.../docker-ce.repo
  • COPY yum-repo/pkg.list /

Read more »

1. 典型的“构建 + 运行”模式(Builder Pattern)——减小最终镜像体积

把编译、打包、依赖安装放在一个“构建”阶段,最终镜像只取运行时产物(无编译工具链)。

1
2
3
4
5
6
7
8
9
10
11
# 构建阶段
FROM golang:1.21-alpine AS builder
WORKDIR /app
ENV CGO_ENABLED=0
COPY . .
RUN go build -o myapp ./cmd/myapp

# 运行阶段(瘦身)
FROM scratch # 空镜像
COPY --from=builder /app/myapp /myapp
ENTRYPOINT ["/myapp"]

用途:Go、Rust、Java(只取 jar)、前端打包(只取静态文件)等。

Read more »
0%