You can install lightuserda and use the init_ctx function.
lua_pushlightuserdata(L, ctx);
lua_setglobal(L, "MY_ZMQ_CONTEXT");
local zmq = require "lzmq"
local ctx = zmq.init_ctx(MY_ZMQ_CONTEXT)
In this case, you cannot close the context from Lua. I have an idea to add this functionality to the next version.
lzmq C functoin LUAZMQ_EXPORT int luazmq_context (lua_State *L, void *ctx, unsigned char own).
.
luazmq_contex(L, ctx, 0);
// or if you want hase ability to destroy contex from Lua
// luazmq_contex(L, ctx, 1);
// MY_ZMQ_CONTEXT is lzmq context
lua_setglobal(L, "MY_ZMQ_CONTEXT");