拉取官网Docker镜像

docker pull apache/sharding-proxy

手动构建Docker镜像(可选)

git clone https://github.com/apache/shardingspheremvn clean installcd sharding-sphere/sharding-distribution/sharding-proxy-distributionmvn clean package -Prelease,docker

配置Sharding-Proxy

在/${your_work_dir}/conf/创立server.yaml和config-xxx.yaml文件,进行服务器和分片规定配置。
配置规定,请参考配置手册。
配置模板,请参考配置模板

运行Docker

docker run -d -v /${your_work_dir}/conf:/opt/sharding-proxy/conf -e PORT=3308 -p13308:3308 apache/sharding-proxy:latest

阐明

  • 能够自定义端口3308133083308示意docker容器端口, 13308示意宿主机端口。
  • 必须挂载配置门路到/opt/sharding-proxy/conf。
docker run -d -v /${your_work_dir}/conf:/opt/sharding-proxy/conf -e JVM_OPTS="-Djava.awt.headless=true" -e PORT=3308 -p13308:3308 apache/sharding-proxy:latest

阐明

  • 能够自定义JVM相干参数到环境变量JVM_OPTS中。
docker run -d -v /${your_work_dir}/conf:/opt/sharding-proxy/conf -v /${your_work_dir}/ext-lib:/opt/sharding-proxy/ext-lib -p13308:3308 apache/sharding-proxy:latest

阐明

  • 如需应用内部jar包,可将其所在目录挂载到/opt/sharding-proxy/ext-lib。

拜访Sharding-Proxy

与连贯PostgreSQL的形式雷同。

psql -U ${your_user_name} -h ${your_host} -p 13308

FAQ

问题1:I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Connection refused?

答复:在构建镜像前,请确保docker daemon过程曾经运行。

问题2:启动时报无奈连贯到数据库谬误?

答复:请确保/${your_work_dir}/conf/config-xxx.yaml配置文件中指定的PostgreSQL数据库的IP能够被Docker容器外部拜访到。

问题3:如何应用后端数据库为MySQL的ShardingProxy?

答复:将mysql-connector.jar所在目录挂载到/opt/sharding-proxy/ext-lib。

问题4:如何应用自定义分片算法?

答复:实现对应的分片算法接口,将编译出的分片算法jar所在目录挂载到/opt/sharding-proxy/ext-lib。