本节主要介绍如何通过 Docker 启动 ShardingSphere-Proxy。
使用 Docker 启动 ShardingSphere-Proxy 无须额外依赖。
docker pull apache/shardingsphere-proxy
方式二:获取 master 分支最新镜像:https://github.com/apache/shardingsphere/pkgs/container/shardingsphere-proxy
方式三:自行构建镜像
git clone https://github.com/apache/shardingsphere
mvn clean install
cd shardingsphere-distribution/shardingsphere-proxy-distribution
mvn clean package -Prelease,docker
如果遇到以下问题,请确保 Docker daemon 进程已经运行。
I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Connection refused?
conf/server.yaml
和 conf/config-*.yaml
可以从 Docker 容器中获取配置文件模板,拷贝到宿主机任意目录中:
docker run -d --name tmp --entrypoint=bash apache/shardingsphere-proxy
docker cp tmp:/opt/shardingsphere-proxy/conf /host/path/to/conf
docker rm tmp
由于容器内的网络环境可能与宿主机的网络环境有差异,如果启动时报无法连接到数据库错误等错误,请确保 conf/config-*.yaml
配置文件中指定的数据库的 IP 可以被 Docker 容器内部访问到。
具体配置请参考 ShardingSphere-Proxy 启动手册 - 使用二进制发布包。
如果存在以下任意需求:
请在宿主机中任意位置创建 ext-lib
目录,并参考 ShardingSphere-Proxy 启动手册 - 使用二进制发布包中的对应步骤。
将宿主机中的 conf
与 ext-lib
目录挂载到容器中,启动容器:
docker run -d \
-v /host/path/to/conf:/opt/shardingsphere-proxy/conf \
-v /host/path/to/ext-lib:/opt/shardingsphere-proxy/ext-lib \
-e PORT=3308 -p13308:3308 apache/shardingsphere-proxy:latest
其中,ext-lib
非必需,用户可按需挂载。
ShardingSphere-Proxy 默认端口 3307
,可以通过环境变量 -e PORT
指定。
自定义 JVM 相关参数可通过环境变量 JVM_OPTS
设置。
说明:
支持设置 CGROUP_MEM_OPTS 环境变量: 用于在容器环境中设置相关内存参数,脚本中的默认值为:
-XX:InitialRAMPercentage=80.0 -XX:MaxRAMPercentage=80.0 -XX:MinRAMPercentage=80.0
请参考 ShardingSphere-Proxy 启动手册 - 使用二进制发布包。
完整配置请参考 ShardingSphere 仓库中的示例: https://github.com/apache/shardingsphere/tree/master/examples/shardingsphere-proxy-example