轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
migratorydata/server
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

server Docker 镜像下载 - 轩辕镜像

server 镜像详细信息和使用指南

server 镜像标签列表和版本信息

server 镜像拉取命令和加速下载

server 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

server
migratorydata/server

server 镜像详细信息

server 镜像标签列表

server 镜像使用说明

server 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

MigratoryData Server的Docker镜像,用于该服务器的容器化部署,支持快速启动和运行。
0 次下载activemigratorydata镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

server 镜像详细说明

server 使用指南

server 配置说明

server 官方文档

MigratoryData Server Docker镜像文档

支持的标签及对应Dockerfile链接

  • 6.0.22, 6.0.22***guard-java21, 5.0.34, latest
标签说明
latestMigratoryData服务器最新版本镜像
<version>指定版本的MigratoryData服务器镜像(如6.0.22)

快速参考

  • 获取帮助: 联系我们
  • 提交问题: GitHub issue跟踪器
  • 维护者: MigratoryData
  • Dockerfiles: GitHub

镜像概述和主要用途

MigratoryData Server是一款高可扩展的消息服务器,专为支持数百万用户的实时Web和移动应用设计并使用。该Docker镜像提供了MigratoryData Server的容器化部署方案,简化了服务器的安装、配置和扩展流程。

更多关于MigratoryData Server的信息,请访问[***]

!logo

核心功能和特性

  • 高可扩展性: 支持数百万并发用户连接
  • 实时消息传递: 低延迟的发布/订阅消息传递机制
  • 集群支持: 内置集群功能,支持高可用和负载均衡
  • 灵活配置: 通过环境变量自定义服务器参数和Java选项
  • 监控集成: 支持JMX监控,便于性能和状态跟踪
  • 扩展机制: 支持自定义扩展(如权限验证扩展)
  • 日志管理: 可配置的日志记录和访问日志功能

使用场景和适用范围

  • 实时Web应用: 如实时通知、聊天系统、协作工具
  • 移动应用: 推送通知、实时数据同步
  • 大规模用户平台: 需要处理高并发连接的应用场景
  • 企业实时通信: 内部实时消息传递、监控仪表盘
  • 事件驱动架构: 微服务间的实时事件传递

详细使用方法和配置说明

运行单个MigratoryData实例

要启动单个MigratoryData实例并允许客户端通过8800端口连接,请先安装Docker,然后运行以下命令:

$ docker pull migratorydata/server:latest
$ docker run -d --name my_migratorydata -p 8800:8800 migratorydata/server:latest

现在,您可以通过[***]访问并运行MigratoryData服务器提供的演示应用(yourhostname是安装该实例的机器的DNS名称或IP地址,需确保客户端可解析和访问)。

查看容器日志:

$ docker logs my_migratorydata

停止并删除容器:

$ docker stop my_migratorydata
$ docker rm my_migratorydata

自定义配置

可通过以下方式自定义Docker容器中运行的MigratoryData服务器的各个方面。

MIGRATORYDATA_EXTRA_OPTS

通过设置MIGRATORYDATA_EXTRA_OPTS环境变量,可定义或覆盖默认配置文件中的参数,语法如下:

-Dparameter=value

注意:参数和值均无需使用单引号或双引号,且值中不允许包含空格。完整参数列表请参见MigratoryData配置指南。

Java选项

三个环境变量用于自定义Java选项:

  • MIGRATORYDATA_JAVA_GC_LOG_OPTS: 垃圾回收日志选项
  • MIGRATORYDATA_JAVA_GC_OPTS: 垃圾收集器配置
  • MIGRATORYDATA_JAVA_EXTRA_OPTS: 其他Java选项

这些选项均有默认值,适用于大多数场景,通常无需额外配置。

添加许可证密钥

要使用许可证密钥,通过额外选项覆盖默认配置文件中的LicenseKey参数:

$ docker run --platform linux/amd64 -d -e MIGRATORYDATA_EXTRA_OPTS='-DLicenseKey=yourlicensekey' \
--name my_migratorydata -p 8800:8800 migratorydata/server:latest

其中yourlicensekey是从MigratoryData获取的评估、测试或生产许可证密钥。

启用JMX监控

要启用JMX监控,需定义JMX相关参数并将JMX端口映射到主机:

$ docker run --platform linux/amd64 -d \
-e MIGRATORYDATA_EXTRA_OPTS='-DLicenseKey=yourlicensekey -DMonitor=JMX -DMonitorUsername=admin -DMonitorPassword=pass \
-DMonitorJMX.Listen=*:3000 -DMonitorJMX.Authentication=true -DMonitorJMX.Encryption=false' \
--name my_migratorydata -p 8800:8800 -p 3000:3000 migratorydata/server:latest

现在,您可以使用JMX客户端通过yourhostname:3000连接,凭据为admin/pass。若使用Java的jconsole,需通过MIGRATORYDATA_JAVA_EXTRA_OPTS添加额外Java选项:

$ docker run --platform linux/amd64 -d \
-e MIGRATORYDATA_EXTRA_OPTS='-DLicenseKey=yourlicensekey -DMonitor=JMX -DMonitorUsername=admin -DMonitorPassword=pass \
-DMonitorJMX.Listen=*:3000 -DMonitorJMX.Authentication=true -DMonitorJMX.Encryption=false' \
-e MIGRATORYDATA_JAVA_EXTRA_OPTS='-Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=yourhostname' \
--name my_migratorydata -p 8800:8800 -p 3000:3000 migratorydata/server:latest

日志配置

除了可通过docker logs my_migratorydata查看的标准输出日志外,镜像还将日志写入默认路径/migratorydata/logs。可通过以下方式修改日志路径:

$ docker run --platform linux/amd64 -d -e MIGRATORYDATA_EXTRA_OPTS='-DLicenseKey=yourlicensekey \
-DLogFolder=/myvolume/migratorydata/logs' -p 8800:8800 migratorydata/server:latest

要记录访问日志,使用-DAccessLog=true参数:

$ docker run --platform linux/amd64 -d -e MIGRATORYDATA_EXTRA_OPTS='-DLicenseKey=yourlicensekey \
-DLogFolder=/myvolume/migratorydata/logs \
-DAccessLog=true' -p 8800:8800 migratorydata/server:latest

部署扩展

要部署一个或多个MigratoryData服务器扩展,需将包含扩展的卷挂载到标准扩展目录/migratorydata/extensions。

例如,假设您开发了一个权限扩展extension.jar并部署到持久化目录/myvolume/migratorydata/extensions,运行以下命令加载该扩展:

$ docker run --platform linux/amd64 -d -e MIGRATORYDATA_EXTRA_OPTS='-DLicenseKey=yourlicensekey -DEntitlement=Custom' \
-v /myvolume/migratorydata/extensions:/migratorydata/extensions \
--name mymigratorydata -p 8800:8800 migratorydata/server:latest

或者,通过构建新镜像部署扩展:

FROM migratorydata/server:latest
COPY extension.jar /migratorydata/extensions/extension.jar

构建并运行:

$ docker build -t custom_migratorydata .
$ docker run --platform linux/amd64 --name my_custom_migratorydata -d custom_migratorydata

Kubernetes上的MigratoryData集群部署

以下示例配置用于在Kubernetes上部署包含三个MigratoryData服务器的集群。

#
# 供MigratoryData集群与客户端通信的Service
#
apiVersion: v1
kind: Service
metadata:
  name: migratorydata-cs
  # 取消以下两行注释以使用Application Gateway部署集群
  #annotations:
  #  service.beta.kubernetes.io/azure-load-***-internal: "true"
  labels:
    app: migratorydata
spec:
  type: Load***
  ports:
    - name: client-port
      port: 80
      protocol: TCP
      targetPort: 8800
  selector:
    app: migratorydata
---
#
# 用于集群内部通信的Headless Service
#
apiVersion: v1
kind: Service
metadata:
  name: migratorydata-hs
  labels:
    app: migratorydata
spec:
  clusterIP: None
  ports:
    - name: inter-cluster1
      port: 8801
      protocol: TCP
      targetPort: 8801
    - name: inter-cluster2
      port: 8802
      protocol: TCP
      targetPort: 8802
    - name: inter-cluster3
      port: 8803
      protocol: TCP
      targetPort: 8803
    - name: inter-cluster4
      port: 8804
      protocol: TCP
      targetPort: 8804
  selector:
    app: migratorydata
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: migratorydata-pdb
spec:
  minAvailable: 3 # 该值必须大于或等于种子成员数量 🅐
  selector:
    matchLabels:
      app: migratorydata
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: migratorydata
spec:
  selector:
    matchLabels:
      app: migratorydata
  serviceName: migratorydata-hs
  replicas: 3 # 期望的集群成员数量 🅑
  updateStrategy:
    type: RollingUpdate
  podManagementPolicy: OrderedReady
  template:
    metadata:
      labels:
        app: migratorydata
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 1
              podAffinityTerm:
                labelSelector:
                  matchExpressions:
                    - key: "app"
                      operator: In
                      values:
                        - migratorydata
                topologyKey: "kubernetes.io/hostname"
      containers:
        - name: migratorydata-cluster
          imagePullPolicy: Always
          image: migratorydata/server:latest
          env:
            - name: MIGRATORYDATA_JAVA_EXTRA_OPTS
              value: "-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
            - name: MIGRATORYDATA_EXTRA_OPTS
              value: "-DMemory=128MB \
                -DClusterDeliveryMode=Guaranteed \
                -DLogLevel=INFO \
                -DX.ConnectionOffload=true \
                -DClusterSeedMemberCount=3" # 定义种子成员数量 🅒
          command:
            - bash
            - "-c"
            - |
              set -x

              HOST=`hostname -s`
              DOMAIN=`hostname -d`

              CLUSTER_PORT=8801
              MAX_REPLICAS=5 # 定义集群成员的最大数量 🅓

              if [[ $HOST =~ (.*)-([0-9]+)$ ]]; then
                  NAME=${BASH_REMATCH[1]}
              fi

              CLUSTER_MEMBER_LISTEN=$HOST.$DOMAIN:$CLUSTER_PORT
              echo $CLUSTER_MEMBER_LISTEN
              MIGRATORYDATA_EXTRA_OPTS="$MIGRATORYDATA_EXTRA_OPTS -DClusterMemberListen=$CLUSTER_MEMBER_LISTEN"

              CLUSTER_MEMBERS=""
              for (( i=1; i < $MAX_REPLICAS; i++ ))
              do
                  CLUSTER_MEMBERS="$CLUSTER_MEMBERS$NAME-$((i-1)).$DOMAIN:$CLUSTER_PORT,"
              done
              CLUSTER_MEMBERS="$CLUSTER_MEMBERS$NAME-$((MAX_REPLICAS-1)).$DOMAIN:$CLUSTER_PORT"
              echo $CLUSTER_MEMBERS
              MIGRATORYDATA_EXTRA_OPTS="$MIGRATORYDATA_EXTRA_OPTS -DClusterMembers=$CLUSTER_MEMBERS"

              echo $MIGRATORYDATA_EXTRA_OPTS
              export MIGRATORYDATA_EXTRA_OPTS

              ./start-migratorydata.sh
          resources:
            requests:
              memory: "256Mi"
              cpu: "0.5"
          ports:
            - name: client-port
              containerPort: 8800
            - name: inter-cluster1
              containerPort: 8801
            - name: inter-cluster2
              containerPort: 8802
            - name: inter-cluster3
              containerPort: 8803
            - name: inter-cluster4
              containerPort: 8804
          readinessProbe:
            tcpSocket:
              port: 8800
            initialDelaySeconds: 10
            periodSeconds: 5
          livenessProbe:
            tcpSocket:
              port: 8800
            initialDelaySeconds: 10
            periodSeconds: 5

上述清单包含Headless Service、客户端Service、PodDisruptionBudget和StatefulSet。客户端Service用于处理客户端连接,Headless Service提供集群实例的DNS记录以支持内部通信。

部署集群:

  1. 将上述配置保存为migratorydata-cluster.yaml
  2. 运行以下命令:
$ kubectl apply -f migratorydata-cluster.yaml

验证部署:

  • 检查Pod状态:
$ kubectl get pods
NAME              READY   STATUS    RESTARTS   AGE
migratorydata-0   1/1     Running   0          2m52s
migratorydata-1   1/1     Running   0          2m40s
migratorydata-2   1/1     Running   0          2m25s
  • 查看服务状态:
$ kubectl get svc
NAME               TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)                               AGE
kubernetes         ClusterIP      10.0.0.1      <none>         443/TCP                               37m
migratorydata-cs   Load***   10.0.58.189   YourExternalIP   80:31596/TCP                          4m8s
migratorydata-hs   ClusterIP      None          <none>         8801/TCP,8802/TCP,8803/TCP,8804/TCP   4m7s

现在,您可以通过[***]访问集群中每个MigratoryData服务器提供的演示应用(YourExternalIP是Kubernetes分配给客户端Service的外部IP,可通过kubectl get svc获取)。

Kubernetes上的MigratoryData集群扩展

在阅读本节前,建议先了解MigratoryData的集群功能。

上述示例YAML中,通过shell变量MAX_REPLICAS🅓定义了集群最大成员数为5,但replicas字段🅑仅创建了3个成员,满足minAvailable字段🅐的最小要求。同时,通过ClusterSeedMemberCount参数🅒配置了3个种子节点,满足minAvailable值大于或等于种子成员数的要求。

可根据系统负载手动或自动添加/移除集群成员(最多5个)。

手动扩展

通过修改replicas字段🅑扩展集群(最多5个成员):

$ kubectl scale statefulsets migratorydata --replicas=5

负载降低时减少成员:

$ kubectl scale statefulsets migratorydata --replicas=4

注意:replicas值不能大于MAX_REPLICAS🅓,也不能小于minAvailable🅐。

自动扩展

若系统负载变化较快,可使用Kubernetes的自动扩展功能。Kubernetes可监控CPU使用率并自动调整replicas值。

例如,当CPU使用率超过50%时扩展至最多5个成员,低于50%时缩减至最少3个成员:

$ kubectl autoscale statefulset migratorydata --cpu-percent=50 --min=3 --max=5

或使用YAML清单:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: migratorydata-autoscale
spec:
  maxReplicas: 5
  minRe
查看更多 server 相关镜像 →
rancher/server logo
rancher/server
by Rancher by SUSE
认证
Rancher 1.x Server容器是用于管理Docker容器集群的服务器组件,提供容器环境的部署、管理与监控功能。
60750M+ pulls
上次更新:5 年前
temporalio/server logo
temporalio/server
by Temporal Technologies Inc
认证
以工作流即代码方式构建和运行弹性应用程序的Docker镜像
1810M+ pulls
上次更新:23 天前
airbyte/server logo
airbyte/server
by Airbyte
认证
暂无描述
610M+ pulls
上次更新:19 小时前
vaultwarden/server logo
vaultwarden/server
by Vaultwarden
Alternative implementation of the Bitwarden server API in Rust, including the Web Vault.
1361100M+ pulls
上次更新:5 天前
shokoanime/server logo
shokoanime/server
by shokoanime
Shoko是一款动画收藏管理程序,旨在自动化管理您的动画收藏。
171M+ pulls
上次更新:17 天前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.