native-thrift cannot run within docker instance since its impl *org.apache.dubbo.rpc.protocol.nativethrift.ThriftProtocol* doesn't honor *bind.host* and *bind.port*.

This limitation should apply to all *org.apache.dubbo.rpc.protocol.AbstractProxyProtocol*.

Pls. use https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-thrift to verify.
}
    private <T> T doReferFrameAndCompact(Class<T> type, URL url) throws RpcException {
        try {
            T thriftClient = null;
            String typeName = type.getName();
            if (typeName.endsWith(THRIFT_IFACE)) {
                String clientClsName = typeName.substring(0, typeName.indexOf(THRIFT_IFACE)) + THRIFT_CLIENT;
                Class<?> clazz = Class.forName(clientClsName);
                Constructor constructor = clazz.getConstructor(TProtocol.class);
                try {
                    TSocket tSocket = new TSocket(url.getHost(), url.getPort());
                    TTransport transport = new TFramedTransport(tSocket);
                    TProtocol tprotocol = new TCompactProtocol(transport);
                    TMultiplexedProtocol protocol = new TMultiplexedProtocol(tprotocol,typeName);
                    thriftClient = (T) constructor.newInstance(protocol);
                    transport.open();
                    logger.info("nativethrift client opened for service(" + url + ")");
                } catch (Exception e) {
                    logger.error(e.getMessage(), e);
                    throw new RpcException("Fail to create remote client:" + e.getMessage(), e);
                }
            }
            return thriftClient;
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            throw new RpcException("Fail to create remote client for service(" + url + "): " + e.getMessage(), e);
        }
    }
}