SkyWalking-10.4.0 Docker + Nacos + Elasticsearch 生产级部署手册

文章目录

一、SkyWalking 产品介绍
SkyWalking 功能一览

Apache SkyWalking 是一个开源、分布式系统可观测的性能分析平台。旨在为云原生、微服务和分布式架构提供完整的监控、追踪和诊断能力。SkyWalking 通过 AgentSDK 等探针技术采集应用运行过程中的指标(Metrics)、分布式链路追踪数据(Distributed Tracing)、服务性能监控(Application Performance Monitoring(APM))、日志关联分析(Log Correlation)、服务拓扑分析(Service Topology)、以及持续性能分析(Continuous Profiling),并通过 OAP(Observability Analysis Platform) 分析服务进行数据聚合、计算和存储,最终通过 Web UI 提供可视化展示。

SkyWalking 支持多种技术栈和运行环境,包括 Java.NETNode.jsGoPythonRust 等语言生态,以及 KubernetesService Mesh、云原生微服务等场景,能够帮助开发和运维团队快速发现系统性能瓶颈、分析服务依赖关系、定位故障根因。其核心架构采用 Agent + OAP + UI 的模式,其中 Agent 负责数据采集,OAP 负责数据分析和查询服务,UI 负责可视化展示与运维管理。

SkyWalking 具备高度可扩展能力,支持多种数据存储后端,如:ElasticsearchBanyanDBMySQLPostgreSQL等,支持集群部署、高可用架构以及通过 NacosZooKeeperKubernetesConsul 等实现服务发现和节点管理,是企业构建统一可观测性能平台的重要开源解决方案。

随着 SkyWalking Horizon UI 等新组件的发展,SkyWalking 正逐步从传统的链路追踪分析工具演进为集指标监控、链路追踪、日志分析、告警管理、性能诊断和权限控制于一体的综合性可观测平台。

SkyWalking 核心组件
组件名称 主要职责 功能说明 常见部署方式
SkyWalking Agent / SDK 数据采集 部署在业务应用内部,通过字节码增强、SDK 埋点等方式采集应用运行数据并发送给 OAP Server Java Agent 直接挂载 JVM 其他语言通过对应 AgentSDK 集成
OAP Server(Observability Analysis Platform) 数据分析与处理核心 SkyWalking 的核心服务,负责接收 Agent 数据,进行指标计算、拓扑分析、链路聚合、告警规则处理、查询服务等。支持集群部署,通过 Cluster Manager 实现节点发现和通信 多节点集群部署,通过 NacosKubernetesZooKeeper 等实现服务注册与发现
SkyWalking UI / Horizon UI 可视化展示与运维入口 提供 Web 控制台,用于查看服务拓扑、链路追踪、指标趋势、日志、告警、性能分析等。新版 Horizon UI 增加认证、RBAC 权限、运维管理能力 独立部署,通过 HTTP 调用 OAP 查询接口
Storage(存储层) 数据持久化 保存 SkyWalking 采集和分析后的数据,包括 TraceMetricsLogsProfileMetadata 等。OAP 通过 Storage API 对接不同存储后端 常用 ElasticsearchBanyanDBMySQLPostgreSQL
Cluster Manager OAP 集群管理 用于 OAP 节点之间的服务发现和内部通信,维护 OAP 集群成员信息,使多个 OAP 节点能够协同工作 NacosZooKeeperKubernetesConsul
SkyWalking 界面对比

Horizon UIApache SkyWalking 新一代可观测性 Web 控制台,用于替代传统的 SkyWalking UI。它仍然依赖 SkyWalking OAP Server 作为后端数据和能力中心,但掐录单架构、配置模型、安全模型都有较大变化。

简单理解:

Horizon UI = 新版 SkyWalking 可观测性门户 + 运维管理控制台 + 权限管理入扣

两代 UI 的核心区别

项目清单 传统 UI(Booster UI Horizon(Next Generation UI
镜像 apache/Skywalking-ui:10.4.0 apache/skywalking-ui:horizon-0.7.0
架构 简单 Web UI BFF + Web Console
配置文件 application.yml horizon.yaml
OAP配置 oapServices oap.queryUrl
认证 基本无独立认证 内置认证体系
权限 依赖外围系统 内置 RBAC
用户管理 Local/LDAP
密码 无默认账号 Argon2 hash
配置热加载 有限 支持
运维能力 展示为主 展示 + 管理

注意:由于 Horizon 需要在 OAP 11.x 版本上才得以支持,当前部署手册还是采用传统的 UI 作为示例部署。

SkyWalking 知识入口
文档 资源 软件
官网入口 博客入口 下载入口
文档入口 源码入口 镜像入口
SkyWalking 架构组成
二、SkyWalking 部署规划
SkyWalking 规划图
Nginx 集群节点

不提供部署说明,请提前部署

节点名称 节点地址 开放端口 节点角色
nginx-01 10.10.217.91 80 Nginx 实例-1
nginx-02 10.10.217.92 80 Nginx 实例-2
nginx-03 10.10.217.93 80 Nginx 实例-3
SkyWalking UI 节点
节点名称 节点地址 开放端口 节点角色
ui-01 10.10.217.81 18080 SkyWalking UI 实例-1
ui-02 10.10.217.82 18080 SkyWalking UI 实例-2
ui-03 10.10.217.83 18080 SkyWalking UI 实例-3
SkyWalking OAP 集群节点
节点名称 节点地址 开放端口 节点角色
oap-01 10.10.217.84 11800、12800 SkyWalking OAP 实例-1
oap-02 10.10.217.85 11800、12800 SkyWalking OAP 实例-2
oap-03 10.10.217.86 11800、12800 SkyWalking OAP 实例-3
端口地址 功能详情
11800 oap 接收 agent 数据专用端口
12800 oap 提供 ui 查询数据专用端口
17128 新一代 horizon-ui Admin API(OAP 11.x 才有此模块)
1234 OAP 内部调试、健康检查或部分管理功能端口(不对外开放)
ElasticSearch 集群节点

不提供部署说明,请提前部署

节点名称 节点地址 开放端口 节点角色
elastic-01 10.10.217.87 9200 elasticsearch 实例-1
elastic-02 10.10.217.88 9200 elasticsearch 实例-2
elastic-03 10.10.217.89 9200 elasticsearch 实例-3
Nacos 集群节点

不提供部署说明,请提前部署

节点名称 节点地址 开放端口 节点角色
nacos-01 10.10.217.90 8848 nacos 实例-1
nacos-02 10.10.217.91 8848 nacos 实例-2
nacos-03 10.10.217.92 8848 nacos 实例-3

注意:Docker 环境、Nacos 集群、ElasticSearch 集群、Nginx 集群等中间件的部署,均不在本部署手册说明范畴。

三、SkyWalking 服务部署

注意:以下操作在各规划部署节点均需执行,可统一修改后 SCP 到各个规划部署节点

准备项:预备镜像端口
  • 下载服务镜像
shell 复制代码
docker pull apache/skywalking-oap-server:10.4.0
  • 开放服务端口
shell 复制代码
# 查防火墙状态
firewall-cmd --state
# 开放业务端口
firewall-cmd --zone=public --add-port=11800/tcp --permanent
firewall-cmd --zone=public --add-port=12800/tcp --permanent
# 重载规则生效
firewall-cmd --reload
# 确认是否生效
firewall-cmd --zone=public --list-ports
方案一:环境变量部署(推荐)
  • 基础启动脚本
shell 复制代码
docker run -d --restart always --name skywalking-oap-cluster \
-p 12800:12800 -p 11800:11800 \
-e "SW_CLUSTER=nacos" \
-e "SW_SERVICE_NAME=SkyWalking_OAP_Cluster" \
-e "SW_CLUSTER_NACOS_HOST_PORT=10.10.217.90:8848,10.10.217.91:8848,10.10.217.92:8848" \
-e "SW_CLUSTER_NACOS_NAMESPACE=e9bc1b26-79be-4a32-9540-4e5b72d15617" \
-e "SW_CLUSTER_NACOS_USERNAME=nacos" \
-e "SW_CLUSTER_NACOS_PASSWORD=nacos" \
# 10.4.0 版本需要配置部署节点宿主机的实际内网 IP 地址,防止注册到 Nacos 后注册信息是 172.17.0.2:11800 类似的容器内网 IP,特别注意:每个节点填写各自节点正式的宿主机内网 IP
-e "SW_CLUSTER_INTERNAL_COM_HOST=10.10.218.84" \
-e "SW_CLUSTER_INTERNAL_COM_PORT=11800" \
-e "SW_STORAGE=elasticsearch" \
-e "SW_STORAGE_ES_CLUSTER_NODES=10.10.217.87:9200,10.10.217.88:9200,10.10.217.89:9200" \
apache/skywalking-oap-server:10.4.0
  • 检查启动日志
shell 复制代码
docker logs -f -n 200 skywalking-oap-cluster
  • 环境变量说明
环境变量名称 环境变量说明 其它备注说明
SW_CLUSTER OAP 集群中间件 各节点必须保持一致
SW_SERVICE_NAME OAP 集群服务名称 各节点必须保持一致
SW_CLUSTER_NACOS_HOST_PORT Nacos 集群地址 多个用英文逗号隔开
SW_CLUSTER_NACOS_USERNAME Nacos 认证用户 -
SW_CLUSTER_NACOS_PASSWORD Nacos 认证密码 -
SW_CLUSTER_INTERNAL_COM_HOST OAP 集群内部通讯地址 每个节点填写各自地址(Docker 必填,各节点必须唯一)
SW_CLUSTER_INTERNAL_COM_PORT OAP 集群内部通讯端口 注册到 Nacos 本机地址和端口
SW_STORAGE OAP 集群数据存储介质 -
SW_STORAGE_ES_CLUSTER_NODES OAP 集群存储介质地址 -
  • 部署场景说明

    • 该场景适用于开发、测试等研究环境的快速部署,方便快速快速搭建验证环境以及对应用各个参数指标配置的灵活验证;
    • 该场景部署方案为将来升级 SkyWalking 各个组件提供快捷的保障和基础,升级时不必过度考虑配置文件是否变更;
    • 涉及环境配置密码等元素设置,则需要结合运维安全规范从 "环境变量部署" 和 "配置文件部署" 两种方案中做取舍。
方案二:配置文件部署
  • 获取配置文件

    shell 复制代码
    # 1、创建配置目录
    mkdir -p /opt/modules/skywalking-oap-cluster
    
    # 2、启动临时容器
    docker run -d --name skywalking-oap-tmp -e "SW_STORAGE=elasticsearch" -e "SW_STORAGE_ES_CLUSTER_NODES=10.10.217.87:9200,10.10.217.88:9200,10.10.217.89:9200" apache/skywalking-oap-server:10.4.0
    
    # 3、提取配置文件 ------ 将容器配置资源拷贝到宿主机的规划目录
    docker cp skywalking-oap-tmp:/skywalking/ /opt/modules/skywalking-oap-cluster/
    
    # 4、删除临时容器
    docker rm -f skywalking-oap-tmp
  • 数组配置列表

    shell 复制代码
    [root@node85 ~]# ll /opt/modules/skywalking-oap-cluster/
    total 344K
    # 启动脚本以及其它可执行工具,如:startup.sh 和 stop.sh
    drwxr-xr-x  2 root root 4.0K Apr  1 22:32 bin
    # 配置文件目录,包含关键配置文件 application.yml
    drwxr-xr-x 13 root root 4.0K Jul 31 17:18 config
    # 配置示例目录,便于用户参考
    drwxr-xr-x  2 root root 4.0K Apr  1 22:32 config-examples
    # 容器启动脚本,用于初始化和启动 SkyWalking OAP 服务
    -rwxr-xr-x  1 root root 1.3K Apr  1 22:31 docker-entrypoint.sh
    # 扩展配置文件目录,用于自动以扩展配置
    drwxr-xr-x  2 root root 4.0K Apr  1 22:32 ext-config
    # 扩展库目录,用于添加插件或者依赖库
    drwxr-xr-x  2 root root 4.0K Apr  1 22:32 ext-libs
    # SkyWalking 项目开源许可证文件
    -rw-r--r--  1 root root  41K May 10  2024 LICENSE
    # 项目中使用的所有依赖库的许可证集合
    drwxr-xr-x  3 root root 4.0K Apr  1 22:32 licenses
    # SkyWalking 项目开源许可证文件模板
    -rw-r--r--  1 root root 1.6K May 10  2024 LICENSE.tpl
    # SkyWalking 开源协议注意事项
    -rwxr-xr-x  1 root root  30K May 10  2024 NOTICE
    # OAP 组件所需的依赖库文件夹
    drwxr-xr-x  2 root root  20K May 10  2024 oap-libs
    # 项目介绍文件,包含操作指南
    -rw-r--r--  1 root root 2.0K May 10  2024 README.txt
    # 工具目录,包含与 SkyWalking 相关的实用工具
    drwxr-xr-x  4 root root 4.0K Apr  1 22:32 tools
    # Zipkin 集成相关的许可证信息
    -rwxr-xr-x  1 root root 207K May 10  2024 zipkin-LICENSE
  • 修改配置文件

    shell 复制代码
    # 1、编辑配置文件
    vim /opt/modules/skywalking-oap-cluster/config/application.yml
    yaml 复制代码
    # 2、修改配置信息
    cluster:
    # 集群模式采用 Nacos 作为服务注册、发现与协调
    selector: ${SW_CLUSTER:nacos}
    nacos:
    # 定义 SkyWalking OAP 注册到 Nacos 上的服务的名称,每个节点必须保持一致
    serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
    # Nacos 集群的配置信息
    hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:10.10.217.90:8848,10.10.217.91:8848,10.10.217.92:8848}
    # Nacos 命名空间
    namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"e9bc1b26-79be-4a32-9540-4e5b72d15617"}
    contextPath: ${SW_CLUSTER_NACOS_CONTEXT_PATH:""}
    # Nacos 认证用户和密码
    username: ${SW_CLUSTER_NACOS_USERNAME:"nacos"}
    password: ${SW_CLUSTER_NACOS_PASSWORD:"nacos"}
    # Nacos auth accessKey
    accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""}
    secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""}
    # 10.4.0 版本需要配置部署节点宿主机的实际内网 IP 地址,防止注册到 Nacos 后注册信息是 172.17.0.2:11800 类似的容器内网 IP,特别注意:每个节点填写各自节点正式的宿主机内网 IP
    internalComHost: ${SW_CLUSTER_INTERNAL_COM_HOST:10.10.217.84}
    internalComPort: ${SW_CLUSTER_INTERNAL_COM_PORT:11800}
    ... ...
    
    storage:
    # OAP 数据采用 ElasticSearch 存储
    selector: ${SW_STORAGE:elasticsearch}
    banyandb:
    # Since 10.2.0, the banyandb configuration is separated to an independent configuration file: `bydb.yaml`.
    elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    # ElasticSearch 集群节点 
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:10.10.217.87:9200,10.10.217.88:9200,10.10.217.89:9200}
    # ElasticSearch 集群协议
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    # ElasticSearch 认证用户
    user: ${SW_ES_USER:""}
    # ElasticSearch 认证密码
    password: ${SW_ES_PASSWORD:""}
    # ElasticSearch 证书路径
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""} # Path to the truststore that contains CA certificates used to verify the OpenSearch/Elasticsearch server certificate.
    # ElasticSearch 证书密码
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""} # Password for the truststore defined in trustStorePath.
    # ElasticSearch 私钥路径
    keyStorePath: ${SW_STORAGE_ES_SSL_KEY_STORE_PATH:""} # Path to the client certificate keystore for mutual TLS (OpenSearch/Elasticsearch client certificate authentication). 
    # ElasticSearch 私钥密码
    keyStorePass: ${SW_STORAGE_ES_SSL_KEY_STORE_PASS:""} # Password for the client certificate keystore defined in keyStorePath. This can be externalized via secretsManagementFile.
    secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
    dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
    # ElasticSearch 索引分片
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes
    # ElasticSearch 分片副本
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1} # Replicas number of new indexes
  • 启动服务容器

    shell 复制代码
    docker run -d --restart always --name skywalking-oap-cluster \
    -p 12800:12800 -p 11800:11800 \
    -v /opt/modules/skywalking-oap-cluster:/skywalking \
    apache/skywalking-oap-server:10.4.0

提醒:如果需要设置容器启动的 JVM 内存,可以在启动脚本配置 -e "JAVA_OPTS=-Xmx8G -Xmx8G -XX:+UseG1GC" 此环境变量将在 docker-entrypoint.sh 启动容器时体现作用。

  • 检查启动日志

    shell 复制代码
    docker logs -f -n 200 skywalking-oap-cluster
检查项:集群注册信息
标准化:生产参数调优
调优目标 中型生产环境建议参数 配置方法
Docker CPU ≥ 8CMemory ≥ 16G --cpus=8 --memory=16g --memory-reservation=8g
JVM Xms=8gXmx=8gG1GC JAVA_OPTS="-Xms8g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
Log 控制日志级别,避免 DEBUG /skywalking/config/log4j2.xml
Linux 文件句柄 ≥ 65535 /etc/security/limits.conf
Linux TCP连接优化 sysctl.conf 调整 somaxconntcp_tw_reuse
四、SkyWalking 界面部署

注意:以下操作在各规划部署节点均需执行,可统一修改后 SCP 到各个规划部署节点

准备项:预备镜像端口
  • 下载界面镜像

    shell 复制代码
    docker pull apache/skywalking-ui:10.4.0
  • 开放界面端口

    shell 复制代码
    # 查防火墙状态
    firewall-cmd --state
    # 开放业务端口
    firewall-cmd --zone=public --add-port=18080/tcp --permanent
    # 重载规则生效
    firewall-cmd --reload
    # 确认是否生效
    firewall-cmd --zone=public --list-ports
方案一:环境变量部署(推荐)
  • 基础启动脚本

    shell 复制代码
    docker run -d --restart always --name skywalking-ui-cluster \
    -p 18080:8080 \
    -e "SW_OAP_ADDRESS=http://10.10.217.85:12800,http://10.10.217.86:12800,http://10.10.217.87:12800" \
    apache/skywalking-ui:10.4.0
  • 检查启动日志

    shell 复制代码
    docker logs -f -n 200 skywalking-ui-cluster
  • 环境变量说明

环境变量名称 环境变量说明 其它备注说明
SW_OAP_ADDRESS OAP 集群地址 多个用英文逗号隔开
SW_ZIPKIN_ADDRESS ZipKin 集群地址 UI 查询 Zipkin 中的数据(根据实际填写,非必填)
  • 部署场景说明
    • 该场景适用于开发、测试等研究环境的快速部署,方便快速快速搭建验证环境以及对应用各个参数指标配置的灵活验证;
    • 该场景部署方案为将来升级 SkyWalking 各个组件提供快捷的保障和基础,升级时不必过度考虑配置文件是否变更;
    • 涉及环境配置密码等元素设置,则需要结合运维安全规范从 "环境变量部署" 和 "配置文件部署" 两种方案中做取舍。
方案二:配置文件部署
  • 获取配置文件

    shell 复制代码
    # 1、创建配置目录
    mkdir -p /opt/modules/skywalking-ui-cluster
    
    # 2、启动临时容器
    docker run -d --name skywalking-ui-tmp apache/skywalking-ui:10.4.0
    
    # 3、提取配置文件 ------ 将容器配置资源拷贝到宿主机的规划目录
    docker cp skywalking-ui-tmp:/skywalking/ /opt/modules/skywalking-ui-cluster/
    
    # 4、删除临时容器
    docker rm -f skywalking-ui-tmp
  • 修改配置文件

    shell 复制代码
    # 1、编辑配置文件
    vim /opt/modules/skywalking-ui-cluster/webapp/application.yml
    yaml 复制代码
    # 2、设置 OAP 服务的连接信息
    oapServices: http://10.10.217.85:12800,http://10.10.217.86:12800,http://10.10.217.87:12800
  • 启动服务容器

    shell 复制代码
    docker run -d --restart always --name skywalking-ui-cluster \
    -p 18080:8080 \
    -v /opt/modules/skywalking-ui-cluster:/skywalking \
    apache/skywalking-ui:10.4.0
  • 检查启动日志

    shell 复制代码
    docker logs -f -n 200 skywalking-ui-cluster
  • 部署场景说明

    • 该场景适用于生产环境部署,为多维度配置提供宿主机的配置支撑,方便更细层次的个性化配置;
    • 该场景对未来版本的升级(特别是大版本),在配置文件的对比和兼容性上会存在一定的挑战;
    • 涉及环境配置密码等元素设置,该方案比 "环境变量部署" 方案更加隐蔽。
标准化:生产参数调优
调优目标 中型生产环境建议参数 配置方法
Docker CPU ≥ 2CMemory ≥ 2G --cpus=2 --memory=2g
JVM UI依赖较轻,默认即可 Docker 环境变量 JAVA_OPTS
Linux 文件句柄 ≥ 65535 /etc/security/limits.conf
Log INFO级别 /skywalking/webapp/config/log4j2.xml
OAP连接 配置多个OAP地址 webapp.ymloapServices
五、SkyWalking 日志留存
目标位:日志文件目录
目标服务 日志目录
SkyWalking OAP /config/log4j2.xml
SkyWalking UI /webapp/log4j2.xml
可配置:日志持久留存
xml 复制代码
<?xml version="1.0" encoding="utf-8"?>

<Configuration status="INFO"> 
  <Appenders> 
    <!-- 控制台输出 -->  
    <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout> 
        <LevelPatternSelector defaultPattern="%d %c %L [%t] %-5p %x - %m%n"> 
          <PatternMatch key="ERROR" pattern="%d %c %L [%t] %-5p %x - [%swversion] %m%n"/> 
        </LevelPatternSelector> 
      </PatternLayout> 
    </Console>  
    <!-- 日志文件留存 ------ 日志留存 7 天 -->  
    <RollingFile name="RollingFile" fileName="/skywalking/logs/oap-server.log" filePattern="/skywalking/logs/oap-server-%d{yyyy-MM-dd}.log.gz"> 
      <PatternLayout> 
        <Pattern>%d %c %L [%t] %-5p %x - %m%n</Pattern> 
      </PatternLayout>  
      <Policies> 
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/> 
      </Policies>  
      <DefaultRolloverStrategy max="7"/> 
    </RollingFile> 
  </Appenders>  
  <Loggers> 
    <Root level="INFO"> 
      <AppenderRef ref="Console"/>  
      <AppenderRef ref="RollingFile"/> 
    </Root> 
  </Loggers> 
</Configuration>
持久化:日志文件外挂

示例代码片段

shell 复制代码
# OAP 挂载
-v /opt/modules/skywalking-oap-cluster/logs:/skywalking/logs
# UI  挂载
-v /opt/modules/skywalking-ui-cluster/logs:/skywalking/logs
相关推荐
互联网中的一颗神经元11 小时前
04 — 安全撤销:改错了怎么退回去
大数据·安全·elasticsearch
Elasticsearch16 小时前
Elasticsearch:列式索引模式 - Columnar index mode
elasticsearch
修罗王16 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
张龙68719 小时前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker
杨浦老苏20 小时前
开源堡垒机 Warpgate:一个容器搞定 SSH、MySQL 和 Web 访问
运维·docker·ssh·堡垒机·群晖
ERD Online21 小时前
docker-compose 一键部署的 MIT 开源数据库建模平台
数据库·docker·开源
Elasticsearch1 天前
从 CrashLoopBackOff 到根本原因,只需几秒:使用 Elastic Observability 自动化 20 分钟的 Kubernetes 调查流
elasticsearch
三言老师1 天前
CentOS7.9 + Kubernetes 1.18.20 -清理所有 docker / containerd 残留
docker·容器·kubernetes
circuitsosk1 天前
从Docker到Kubernetes:AI应用服务化与弹性伸缩的落地实践
人工智能·docker·kubernetes·ai应用部署