LXD, Linux Container Hypervisor

LXD is an open source container management extension for Linux Containers (LXC). LXD both improves upon existing LXC features and provides new features and functionality to build and manage Linux containers.

The core of LXD is a privileged daemon which exposes a REST API over a local unix socket as well as over the network (if enabled). LXD isn’t a rewrite of LXC, in fact it’s building on top of LXC to provide a new, better user experience. Under the hood, LXD uses LXC through liblxc and its Go binding to create and manage the containers.

LXD is typically added to the Linux kernel. Packaged LXD distributions are available for numerous Linux distributions, including Fedora, Debian, openSUSE, Ubuntu, Alpine Linux, Arch Linux and Gentoo. Users can also obtain LXD builds for Windows and macOS.

The LXD project was founded and is currently led by Canonical Ltd with contributions from a range of other companies and individual contributors.

lxd container hypervisor

lxd container hypervisor

Features

  • Secure by design (unprivileged containers, resource restrictions and much more)
  • Scalable (from containers on your laptop to thousands of compute nodes)
  • Intuitive (simple, clear API and crisp command line experience)
  • Image based (with a wide variety of Linux distributions published daily)
  • Support for Cross-host container and image transfer (including live migration with CRIU)
  • Advanced resource control (cpu, memory, network I/O, block I/O, disk usage and kernel resources)
  • Device passthrough (USB, GPU, unix character and block devices, NICs, disks and paths)
  • Network management (bridge creation and configuration, cross-host tunnels, …)
  • Storage management (support for multiple storage backends, storage pools and storage volumes)

 

LXD Installation

LXD has two kinds of releases,

LTS releases
Feature releases

LTS releases are recommended for production environments as they will benefit from regular bugfix and security updates, it will not available any new features added or any kind of behavioral change. To get all the latest features and monthly updates to LXD, use the feature release

In this tutorial, you will learn to set up and use LXD (Linux container hypervisor) https://linuxcontainers.org/lxd/getting-started-cli/

 

Record your terminal and generate gif with terminalizer

Record your terminal and generate animated gif images with Terminalizer. Forget screen recording apps and blurry video. Enjoy a lightweight, purely text-based approach to terminal recording.

Features,

  • Highly customizable.
  • Cross platform (Linux, Windows, MacOS).
  • Custom window frames.
  • Custom font.
  • Custom colors.
  • Custom styles with CSS.
  • Watermark.
  • Edit frames and adjust delays before rendering.
  • Skipping frames by a step value to reduce the number of rendered frames.
  • Render images with texts on them instead of capturing your screen for better quality.
Record terminal terminalizer

Record terminal terminalizer

How to install terminalizer in CentOS

# yum install npm -y
# npm install -g terminalizer

Once done, you can record your terminal outputs.

terminalizer <command> [options]

# terminalizer record <recordingFile>

Options

-c, –config Overwrite the default configurations [string]
-d, –command The command to be executed [string] [default: null]

# terminalizer record demo

# terminalizer record demo –config config.yml # Start recording with your own configurations

A file called demo.yml will be created in the current directory. You can open it using any editor to edit the configurations and the recorded frames.

You can replay your recording using the play command. Play a recording file on your terminal

# terminalizer play <recordingFile>

Options

-r, –real-timing Use the actual delays between frames as recorded [boolean] [default: false]
-s, –speed-factor Speed factor, multiply the frames delays by this factor [number] [default: 1]

# terminalizer play demo

Render a recording file as an animated gif image

# terminalizer render <recordingFile>

Options

-o, –output A name for the output file [string]
-q, –quality The quality of the rendered image (1 – 100) [number]
-s, –step To reduce the number of rendered frames (step > 1) [number] [default: 1]

# terminalizer render demo

Share

Upload a recording file and get a link for an online player

# terminalizer share <recordingFile>

Generate

Generate a web player for a recording file

terminalizer generate <recordingFile>

Optimize your terminalizer configuration to modify the Recording, Delays, GIF, Terminal, Theme, Watermark, Frame Box etc.,

Generate a config file in the current directory

# terminalizer config

Use any editor to edit the copied config.yml and modify the changes.

Issues

Error:
/usr/lib/node_modules/terminalizer/node_modules/electron/dist/electron: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory

Hint:
Use the –help option to get help about the usage

Solution:
# yum install gtk3-devel

Error:
/usr/lib/node_modules/terminalizer/node_modules/electron/dist/electron: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory

Solution:
# yum install GConf2

Ubuntu
sudo apt-get install libgconf-2-4

Error:

error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

Solution:
sudo yum install libXScrnSaver