Docker容器间进程可见性配置秘籍:彻底搞懂--pid=host与共享命名空间

Docker PID命名空间配置详解

第一章:Docker容器PID命名空间共享概述

Docker 容器通过 Linux 的命名空间(Namespace)机制实现资源隔离,其中 PID 命名空间负责隔离进程 ID 的视图。默认情况下,每个容器拥有独立的 PID 命名空间,其内部进程无法查看宿主机或其他容器中的进程信息。然而,在某些运维和调试场景中,需要多个容器或容器与宿主机共享 PID 命名空间,以便直接监控或管理彼此的进程。

共享 PID 命名空间的应用场景

  • 跨容器进程监控:一个容器可使用 pstop 查看另一个容器的运行进程
  • 故障排查:调试容器内应用时,可通过共享命名空间捕获宿主机上的相关进程状态
  • 日志收集代理:日志采集容器能直接访问应用容器的进程输出,无需额外暴露接口

实现方式与命令示例

在启动容器时,可通过 --pid 参数指定 PID 命名空间的共享模式。例如,让新容器与已有容器共享 PID 空间:
# 启动目标容器并命名
docker run -d --name app-container nginx

# 启动调试容器并共享其 PID 命名空间
docker run -it --rm --pid=container:app-container ubuntu bash
上述命令中,--pid=container:app-container 表示新容器将加入名为 app-container 的 PID 命名空间。此时,在 Ubuntu 容器中执行 ps aux 将显示与 app-container 相同的进程列表。

命名空间共享模式对照表

模式语法格式行为说明
共享宿主机--pid=host容器与宿主机共用 PID 空间,可查看所有系统进程
共享特定容器--pid=container:<name>加入指定容器的 PID 命名空间
独立命名空间默认行为容器拥有自己的 PID 视图,与其他隔离
graph TD A[宿主机] --> B[容器A: 独立PID] A --> C[容器B: --pid=host] A --> D[容器C: --pid=container:A] C -->|可见| A D -->|共享| A

第二章:理解PID命名空间的工作机制

2.1 PID命名空间基础概念与隔离原理

PID命名空间是Linux容器实现进程隔离的核心机制之一。每个PID命名空间拥有独立的进程ID编号空间,使得不同命名空间中的进程可以拥有相同的PID,而互不干扰。
命名空间的层次结构
系统启动时创建初始PID命名空间(init namespace),后续通过clone()unshare()系统调用可创建子命名空间。子空间无法感知父空间以外的进程,形成单向隔离。
进程可见性隔离示例

#include <sched.h>
#include <unistd.h>
#include <sys/wait.h>

// 创建新的PID命名空间
if (clone(child_func, stack_top, CLONE_NEWPID | SIGCHLD, NULL) == -1) {
    perror("clone");
}
上述代码中,CLONE_NEWPID标志触发新建PID命名空间。子进程中,getpid()返回的PID在父命名空间中可能对应不同进程,实现隔离。
  • PID 1 在每个命名空间中均为初始化进程
  • 跨命名空间通信需依赖信号传递或IPC机制
  • 只有在所有命名空间中都可见的进程才能被全局管理

2.2 容器间进程可见性的默认行为分析

在默认情况下,Docker 容器之间运行的进程彼此不可见。每个容器拥有独立的 PID 命名空间,确保其内部进程隔离。
命名空间隔离机制
Linux 的 PID 命名空间为每个容器提供独立的进程视图。即使宿主机上运行多个容器,各容器仅能查看自身进程。
docker run -d --name container1 ubuntu sleep 3600
docker run -d --name container2 ubuntu sleep 3600
上述命令启动两个容器,各自运行独立的 sleep 进程。在 container1 中执行 ps aux,无法看到 container2 的进程。
共享命名空间配置
可通过 --pid=container:--pid=host 改变默认行为。例如:
  • --pid=host:共享宿主机 PID 空间,可查看所有系统进程;
  • --pid=container:name:与指定容器共享 PID 命名空间。
这种设计强化了安全性和隔离性,是容器化部署的核心保障之一。

2.3 --pid=host模式的技术实现与影响

进程命名空间共享机制

在Docker中启用--pid=host模式后,容器将共享宿主机的PID命名空间。这意味着容器内可直接查看和操作宿主机所有进程。

docker run -it --pid=host ubuntu ps aux

该命令使容器执行ps aux时显示宿主机全部进程列表。关键参数--pid=host绕过了PID隔离,适用于性能调试或监控场景,但牺牲了安全隔离性。

安全与性能权衡
  • 优势:降低进程通信开销,便于系统级监控工具部署
  • 风险:容器逃逸风险提升,恶意进程可能干预宿主机任务
模式PID隔离适用场景
默认启用常规应用运行
--pid=host禁用性能分析、故障排查

2.4 共享PID命名空间的典型应用场景

在容器化部署中,共享PID命名空间常用于实现进程间的直接通信与状态监控。多个容器共享同一PID空间后,可相互查看和操作对方进程,适用于主从架构或代理模式。
微服务调试场景
当主容器需要调试辅助容器中的进程时,共享PID命名空间允许使用pstop等命令直接查看所有相关进程。
docker run -d --pid=container:main-container debug-tool
该命令使调试工具容器加入主容器的PID命名空间,便于实时监控和故障排查。
主控与工作进程协作
常见于日志收集或监控代理架构,主容器启动后,工作容器需获取其PID以建立通信通道。
场景优势
进程监控无需额外暴露API即可获取进程状态
信号传递支持直接发送SIGTERM等信号控制生命周期

2.5 安全风险与权限控制的权衡考量

在微服务架构中,权限控制策略直接影响系统的安全边界与灵活性。过于严格的访问控制可能阻碍服务间必要的通信,而过度宽松则会放大攻击面。
基于角色的访问控制(RBAC)模型
  • 用户被分配至特定角色
  • 角色绑定具体权限策略
  • 策略通过声明式规则定义
最小权限原则的实现示例
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: production
  name: readonly-user
rules:
- apiGroups: [""]
  resources: ["pods", "services"]
  verbs: ["get", "list"] # 仅读权限
该配置限制用户仅能获取 Pod 和 Service 的只读信息,遵循最小权限原则,降低误操作或凭证泄露带来的风险。verbs 字段明确限定可执行操作,避免过度授权。

第三章:配置容器PID共享的实践方法

3.1 使用--pid=host启动容器的实操步骤

在某些需要深度系统监控或调试的场景中,让容器共享宿主机的PID命名空间非常关键。使用 --pid=host 参数可实现这一目标。
操作流程
执行以下命令启动一个能查看宿主机进程的容器:
docker run -it --pid=host ubuntu:20.04 bash
该命令中,--pid=host 表示容器将共享宿主机的进程命名空间,从而可通过 ps auxtop 查看所有宿主进程。
典型应用场景
  • 排查容器内无法直接观测的父进程问题
  • 性能分析工具(如 strace、gdb)调试宿主进程
  • 监控类工具容器化部署(如 prometheus-node-exporter 增强模式)
注意:此模式存在安全风险,应仅在受控环境中使用。

3.2 通过--pid=container:NAME实现命名空间复用

在Docker中,PID命名空间控制进程的可见性。使用--pid=container:NAME可使新容器复用已有容器的PID命名空间,从而查看和操作其内部进程。
共享PID命名空间的语法示例
docker run -d --name container-a alpine sleep 3600
docker run -it --pid=container:container-a alpine ps aux
第一条命令启动名为container-a的容器并运行sleep进程;第二条容器直接复用container-a的PID命名空间,并通过ps aux查看其内部所有进程。
典型应用场景
  • 调试运行中的容器,无需安装额外工具
  • 跨容器进程监控与诊断
  • 轻量级运维工具容器设计
该机制极大提升了容器间协作的灵活性,同时保持了命名空间隔离的原始设计目标。

3.3 多容器协同场景下的进程通信验证

在微服务架构中,多个容器间需通过可靠的通信机制实现数据交换与状态同步。常见的通信方式包括共享存储、消息队列和基于网络的RPC调用。
通信模式对比
  • 共享卷(Volume):适用于同一Pod内容器间文件共享
  • Envoy Sidecar:通过本地回环接口转发服务请求
  • gRPC over Unix Domain Socket:低延迟进程间通信
基于Unix域套接字的通信示例

// server.c:监听本地socket
int sock = socket(AF_UNIX, SOCK_STREAM, 0);
struct sockaddr_un addr = {0};
addr.sun_family = AF_UNIX;
strcpy(addr.sun_path, "/tmp/comm.sock");
bind(sock, (struct sockaddr*)&addr, sizeof(addr));
listen(sock, 5);
该代码片段创建一个Unix域套接字服务器,路径位于共享卷中,供其他容器挂载访问。通过文件系统实现零拷贝数据传输,提升I/O效率。
验证方案
方法延迟适用场景
TCP Loopback~10μs跨网络命名空间
Unix Socket~2μs同主机高频率通信

第四章:高级用例与故障排查技巧

4.1 调试容器内无法查看宿主机进程的问题

在默认情况下,Docker 容器运行于独立的 PID 命名空间中,导致容器内部无法看到宿主机的进程信息。这种隔离机制虽然增强了安全性,但在调试系统级服务时可能带来不便。
使用 host PID 命名空间
可通过启动容器时添加 --pid=host 参数,使其共享宿主机的 PID 命名空间:
docker run -it --pid=host ubuntu:20.04 ps aux
该命令允许容器内执行 ps aux 查看宿主机所有进程。参数 --pid=host 使容器绕过 PID 隔离,直接访问宿主进程表。
安全与使用场景权衡
  • 仅在必要调试场景下启用 --pid=host
  • 避免在生产环境中长期使用,以防信息泄露
  • 结合 seccompapparmor 限制容器权限
此配置适用于监控代理、性能分析工具等需跨命名空间观测的场景。

4.2 监控工具容器中共享PID命名空间的应用

在容器化环境中,监控工具常需获取宿主机或其他容器的进程信息。通过共享PID命名空间,监控容器可直接访问目标容器的进程树。
启用共享PID命名空间
启动监控容器时,使用 --pid=container:<target> 参数:
docker run -it --pid=container:app-container prometheus-node-exporter
该命令使监控容器与目标容器(app-container)共享PID命名空间,从而能读取其/proc文件系统中的进程数据。
典型应用场景
  • 性能诊断:实时查看应用容器内所有进程的CPU与内存占用
  • 故障排查:捕获僵尸进程或异常子进程
  • 安全审计:监控不可信容器的行为活动
共享PID命名空间为精细化监控提供了底层支持,同时需注意权限隔离风险。

4.3 命名空间配置冲突的诊断与解决

在多租户或微服务架构中,命名空间配置冲突常导致资源加载失败或行为异常。首要步骤是确认当前运行时的命名空间上下文。
诊断工具使用
通过调试命令查看当前命名空间分配:
kubectl get namespaces
kubectl config view | grep namespace
上述命令列出集群中所有命名空间并检查默认上下文设置,确保操作作用于预期环境。
常见冲突场景
  • 多个配置文件定义相同名称但不同用途的资源
  • 跨命名空间的服务发现未正确限定域名
  • RBAC策略因命名空间隔离被误配导致权限缺失
解决方案示例
使用限定名称避免歧义:
apiVersion: v1
kind: Service
metadata:
  name: api-service
  namespace: staging  # 明确指定命名空间
spec:
  selector:
    app: api-server
  ports:
    - protocol: TCP
      port: 80
该配置显式声明资源所属命名空间,防止部署时因上下文错乱引发冲突。结合CI/CD流水线校验命名空间一致性,可有效规避此类问题。

4.4 性能开销与资源隔离的综合评估

在容器化环境中,性能开销主要来源于资源调度、网络和存储抽象层。为量化影响,可通过压测工具对比原生与容器内应用的吞吐量。
资源隔离机制对比
  • CPU:通过cgroups限制核心使用率,避免争抢
  • 内存:设置硬性上限防止OOM扩散
  • I/O:基于blkio控制器实现磁盘带宽隔离
性能基准测试示例
docker run --cpus=1 --memory=512m ubuntu:20.04 \
  stress-ng --cpu 1 --timeout 30s
该命令限制容器使用1个CPU核心和512MB内存,运行压力测试30秒,便于采集CPU/内存占用率及延迟变化。
典型场景性能损耗表
场景原生QPS容器QPS损耗率
HTTP服务12000116003.3%
数据库读取850079007.1%

第五章:总结与最佳实践建议

构建高可用微服务架构的关键策略
在生产环境中部署微服务时,应优先考虑服务注册与健康检查机制。使用如Consul或etcd等工具实现自动服务发现,并通过心跳检测确保节点状态实时同步。
  • 确保每个服务实例暴露健康检查端点(如/health
  • 配置合理的超时与重试策略,避免级联故障
  • 采用熔断器模式(如Hystrix或Resilience4j)提升系统韧性
代码层面的性能优化示例
以下Go语言代码展示了如何通过连接池复用数据库连接,减少资源开销:

db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
if err != nil {
    log.Fatal(err)
}
// 设置最大空闲连接数
db.SetMaxIdleConns(10)
// 设置最大打开连接数
db.SetMaxOpenConns(100)
// 设置连接生命周期
db.SetConnMaxLifetime(time.Hour)
监控与日志的最佳实践
统一日志格式有助于集中式分析。建议采用结构化日志(如JSON格式),并集成ELK或Loki栈进行可视化。
指标类型推荐采集频率告警阈值示例
CPU 使用率10秒/次>85% 持续5分钟
请求延迟 P9915秒/次>1.5s 持续3次
安全加固的实际操作步骤
所有对外暴露的服务必须启用TLS加密。使用Let's Encrypt自动化证书签发流程,并通过定期轮换密钥降低泄露风险。
# 国内能拉取的 OpenJDK 17 FROM temurin:17-jre-alpine LABEL maintainer="yourname" # 时区 & 国内 apk 源 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ apk add --no-cache tzdata curl && \ ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone WORKDIR /app COPY ruoyi-auth.jar app.jar # 创建非root用户运行 RUN addgroup -S appgroup && adduser -S appuser -G appgroup && \ chown -R appuser:appgroup /app USER appuser # 健康检查 HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \ CMD curl -f http://localhost:${SERVER_PORT:-28200}/actuator/health || exit 1 # === 仅设置必要的默认值,其他全部通过环境变量注入 === ENV SPRING_PROFILES_ACTIVE=docker EXPOSE 28200 # 使用shell形式以便环境变量替换 ENTRYPOINT java \ -Djava.security.egd=file:/dev/./urandom \ -Dserver.port=${SERVER_PORT:-28200} \ -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE:-docker} \ -Dspring.cloud.nacos.discovery.server-addr=${NACOS_HOST:-127.0.0.1}:${NACOS_PORT:-8848} \ -Dspring.cloud.nacos.config.server-addr=${NACOS_HOST:-127.0.0.1}:${NACOS_PORT:-8848} \ -Dspring.cloud.nacos.discovery.namespace=${NACOS_NAMESPACE:-public} \ -Dspring.cloud.nacos.config.namespace=${NACOS_NAMESPACE:-public} \ -Dspring.cloud.nacos.discovery.username=${NACOS_USER:-nacos} \ -Dspring.cloud.nacos.config.username=${NACOS_USER:-nacos} \ -Dspring.cloud.nacos.discovery.password=${NACOS_PASS:-nacos} \ -Dspring.cloud.nacos.config.password=${NACOS_PASS:-nacos} \ -Djasypt.encryptor.algorithm=${JASYPT_ALGORITHM:-PBEWITHMD5ANDDES} \ -Dspring.cloud.nacos.config.retry.timeout=30000 \ -Dspring.cloud.nacos.discovery.fail-fast=true \ -DnamingLoadCacheAtStart=false \ -jar app.jar 这是我得dockerfile 以下是报错信息[root@master ~]# kubectl logs -f nacos-standalone-78866b79d4-l69sb -n nacos + export CUSTOM_SEARCH_NAMES=application + CUSTOM_SEARCH_NAMES=application + export CUSTOM_SEARCH_LOCATIONS=file:/home/nacos/conf/ + CUSTOM_SEARCH_LOCATIONS=file:/home/nacos/conf/ + export MEMBER_LIST= + MEMBER_LIST= + PLUGINS_DIR=/home/nacos/plugins/peer-finder + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 ' + [[ standalone == \s\t\a\n\d\a\l\o\n\e ]] + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true' + [[ all == \c\o\n\f\i\g ]] + [[ all == \n\a\m\i\n\g ]] + [[ ! -z '' ]] + [[ ! -z '' ]] + [[ ! -z '' ]] + [[ ! -z '' ]] + [[ ! -z false ]] + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false' + [[ ip == \h\o\s\t\n\a\m\e ]] + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list=' ++ /usr/lib/jvm/java-1.8.0-openjdk/bin/java -version ++ sed -E -n 's/.* version "([0-9]*).*$/\1/p' + JAVA_MAJOR_VERSION=1 + [[ 1 -ge 9 ]] + JAVA_OPT_EXT_FIX=-Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk/lib/ext + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar ' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/nacos/conf/' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/nacos/conf/ --spring.config.name=application' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/nacos/conf/ --spring.config.name=application --logging.config=/home/nacos/conf/nacos-logback.xml' + JAVA_OPT=' -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/nacos/conf/ --spring.config.name=application --logging.config=/home/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288' + echo 'Nacos is starting, you can docker logs your container' + exec /usr/lib/jvm/java-1.8.0-openjdk/bin/java -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -Xms400m -Xmx400m -Xmn512m -Dnacos.standalone=true -Dnacos.core.auth.enabled=false -Dnacos.member.list= -Xloggc:/home/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/home/nacos/plugins,/home/nacos/plugins/health,/home/nacos/plugins/cmdb,/home/nacos/plugins/selector -Dnacos.home=/home/nacos -jar /home/nacos/target/nacos-server.jar --spring.config.additional-location=file:/home/nacos/conf/ --spring.config.name=application --logging.config=/home/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288 Nacos is starting, you can docker logs your container OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N OpenJDK 64-Bit Server VM warning: MaxNewSize (524288k) is equal to or greater than the entire heap (409600k). A new max generation size of 409536k will be used. ,--. ,--.'| ,--,: : | Nacos 2.3.2 ,`--.'`| ' : ,---. Running in stand alone mode, All function modules | : : | | ' ,'\ .--.--. Port: 8848 : | \ | : ,--.--. ,---. / / | / / ' Pid: 1 | : ' '; | / \ / \. ; ,. :| : /`./ Console: http://10.244.2.63:8848/nacos/index.html ' ' ;. ;.--. .-. | / / '' | |: :| : ;_ | | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io ' : | ; .' ," .--.; |' ; :__| : | `----. \ | | '`--' / / ,. |' | '.'|\ \ / / /`--' / ' : | ; : .' \ : : `----' '--'. / ; |.' | , .-./\ \ / `--'---' '---' `--`---' `----' 2025-11-16 19:53:07,267 INFO Tomcat initialized with port(s): 8848 (http) 2025-11-16 19:53:07,372 INFO Root WebApplicationContext: initialization completed in 5196 ms 2025-11-16 19:53:18,185 INFO Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2b037cfc, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@44924587, org.springframework.security.web.context.SecurityContextPersistenceFilter@688d411b, org.springframework.security.web.header.HeaderWriterFilter@7569ea63, org.springframework.security.web.csrf.CsrfFilter@44a6a68e, org.springframework.security.web.authentication.logout.LogoutFilter@6ff6efdc, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@859ea42, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2af46afd, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@18460128, org.springframework.security.web.session.SessionManagementFilter@16c587de, org.springframework.security.web.access.ExceptionTranslationFilter@2f66f0d0] 2025-11-16 19:53:18,905 INFO Adding welcome page: class path resource [static/index.html] 2025-11-16 19:53:20,279 INFO Exposing 1 endpoint(s) beneath base path '/actuator' 2025-11-16 19:53:20,353 WARN You are asking Spring Security to ignore Ant [pattern='/**']. This is not recommended -- please use permitAll via HttpSecurity#authorizeHttpRequests instead. 2025-11-16 19:53:20,354 INFO Will not secure Ant [pattern='/**'] 2025-11-16 19:53:20,354 WARN You are asking Spring Security to ignore Mvc [pattern='/prometheus']. This is not recommended -- please use permitAll via HttpSecurity#authorizeHttpRequests instead. 2025-11-16 19:53:20,354 INFO Will not secure Mvc [pattern='/prometheus'] 2025-11-16 19:53:20,354 WARN You are asking Spring Security to ignore Mvc [pattern='/prometheus/namespaceId/{namespaceId}']. This is not recommended -- please use permitAll via HttpSecurity#authorizeHttpRequests instead. 2025-11-16 19:53:20,354 INFO Will not secure Mvc [pattern='/prometheus/namespaceId/{namespaceId}'] 2025-11-16 19:53:20,354 WARN You are asking Spring Security to ignore Mvc [pattern='/prometheus/namespaceId/{namespaceId}/service/{service}']. This is not recommended -- please use permitAll via HttpSecurity#authorizeHttpRequests instead. 2025-11-16 19:53:20,354 INFO Will not secure Mvc [pattern='/prometheus/namespaceId/{namespaceId}/service/{service}'] 2025-11-16 19:53:20,477 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos' 2025-11-16 19:53:20,493 INFO No TaskScheduler/ScheduledExecutorService bean found for scheduled processing 2025-11-16 19:53:20,558 INFO Nacos started successfully in stand alone mode. use external storage 加了- name: NACOS_CORE_REMOTE_SERVER_PORT value: "9848"为什么不显示
最新发布
11-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值