You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一台机器上同时通过不同端口运行Solr Docker镜像?

在同一台机器上运行多个不同端口的Solr Docker容器

当然可以!在同一台机器上用不同端口运行多个Solr Docker容器其实很简单,核心是利用Docker的端口映射功能,把主机的不同端口映射到每个Solr容器内部默认的8983端口即可。下面给你两种实用的实现方案:

方案1:直接使用docker run命令手动启动

这是最直接的方式,每个容器启动时指定不同的主机端口映射:

  • 启动第一个Solr容器,映射主机8983端口到容器8983端口:
    docker run -d -p 8983:8983 --name solr1 solr
    
  • 启动第二个Solr容器,映射主机8984端口到容器8983端口:
    docker run -d -p 8984:8983 --name solr2 solr
    
  • 以此类推,第三个容器可以用8985端口,只需要修改命令里的第一个端口号即可。

关键参数说明:

  • -d:让容器在后台运行
  • -p 主机端口:容器端口:实现端口映射,容器内Solr默认监听8983,所以只要主机端口不重复就行
  • --name:给容器设置唯一名称,方便后续管理(比如停止、删除容器)

方案2:使用Docker Compose批量管理容器

如果需要长期维护多个Solr容器,Docker Compose会更方便,通过一个配置文件就能管理所有容器的启动、停止。

  1. 创建一个docker-compose.yml文件,内容如下:

    version: '3.8'
    services:
      solr1:
        image: solr
        ports:
          - "8983:8983"
        container_name: solr1
        # 如果需要挂载自定义配置,可添加volumes字段
        # volumes:
        #   - ./solr1-config:/opt/solr/server/solr/mycore/conf
    
      solr2:
        image: solr
        ports:
          - "8984:8983"
        container_name: solr2
        # 同样可以给第二个容器挂载不同的配置
        # volumes:
        #   - ./solr2-config:/opt/solr/server/solr/mycore/conf
    
  2. 在该文件所在目录执行启动命令:

    docker-compose up -d
    
  3. 停止所有容器的话,执行:

    docker-compose down
    

额外注意事项

  • 端口冲突检查:启动前要确保主机上的目标端口没有被其他服务占用,可以用命令ss -tulpn | grep 端口号(比如ss -tulpn | grep 8983)来检查。
  • 自定义配置:如果每个Solr容器需要不同的配置(比如不同的core、schema),可以通过-v参数(docker run)或volumes字段(docker-compose)将本地配置目录挂载到容器内对应的路径。
  • 容器间通信:如果多个Solr容器需要互相访问,建议创建一个自定义Docker网络,把所有容器加入该网络,这样容器之间可以通过容器名直接通信,无需暴露端口到主机。

内容的提问来源于stack exchange,提问作者Saurav Mohapatra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 17:52:47