Skip to content

Repository files navigation

npm version

A client for communicating with a local or remote instance of linux containers. The interface is object-oriented, simple and uniform. Unrestrictive with an open MIT license.

Installing

$ npm install --save node-lxd

Getting Started

The following example connects to the local LXC instance and launches a new container.

varlxd=require("node-lxd");varclient=lxd();client.create("myContainer","ubuntu",function(err,container){container.start(function(err){if(!err)console.log("Started "+container.name());});});

Example

The following example uses an express application to allow users to create containers and execute commands.

// requiresvarexpress=require("express");varlxd=require("node-lxd");varclient=lxd();varapp=express();varcontainers={};app.post("/create",function(req,res){client.launch(req.query.name,function(err,container){if(err)res.json({success: false,message: err.getMessage()});else{containers[req.query.name]=container;res.json({success: true,message: "Container launched"});}});});app.post("/run",function(req,res){if(!containers.hasOwnProperty(req.query.name)){res.json({success: false,message: "Container does not exist"});return;}containers[req.query.name].run(req.query.cmd.split(" "),function(err,stdOut,stdErr){if(err)res.json({success: false,message: err.getMessage()});elseif(stdErr.length>0)res.json({success: false,message: stdErr});else{res.json({success: true,message: stdOut});}});});app.listen(3000,function(err){if(!err)console.log("listening on port 3000");});

Documentation

The client class is documented here.

The container class is documented here.

The process class is documented here.

About

A client for linux containers (lxd)

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages