How to install and setup LXC Containers (OpenVZ alternative) on Centos 6 / 7

If you don't aleady have it, you'll need EPEL

Install LXC

yum -y install lxc lxc-templates
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirror.it.ubc.ca
* epel: mirrors.kernel.org
* extras: mirror.it.ubc.ca
* updates: mirror.it.ubc.ca
Resolving Dependencies
--> Running transaction check
---> Package lxc.x86_64 0:1.0.11-1.el6 will be installed
--> Processing Dependency: lua-lxc(x86-64) = 1.0.11-1.el6 for package: lxc-1.0.11-1.el6.x86_64
--> Processing Dependency: lua-alt-getopt for package: lxc-1.0.11-1.el6.x86_64
--> Processing Dependency: liblxc.so.1()(64bit) for package: lxc-1.0.11-1.el6.x86_64
--> Running transaction check
---> Package lua-alt-getopt.noarch 0:0.7.0-1.el6 will be installed
---> Package lua-lxc.x86_64 0:1.0.11-1.el6 will be installed
--> Processing Dependency: lua-filesystem for package: lua-lxc-1.0.11-1.el6.x86_64
---> Package lxc-libs.x86_64 0:1.0.11-1.el6 will be installed
--> Running transaction check
---> Package lua-filesystem.x86_64 0:1.4.2-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================
Installing:
lxc x86_64 1.0.11-1.el6 epel 124 k
Installing for dependencies:
lua-alt-getopt noarch 0.7.0-1.el6 epel 6.9 k
lua-filesystem x86_64 1.4.2-1.el6 epel 24 k
lua-lxc x86_64 1.0.11-1.el6 epel 16 k
lxc-libs x86_64 1.0.11-1.el6 epel 257 k

Transaction Summary
========================================================================================================================================================================
Install 5 Package(s)

Total download size: 429 k
Installed size: 953 k
Downloading Packages:
(1/5): lua-alt-getopt-0.7.0-1.el6.noarch.rpm | 6.9 kB 00:00
(2/5): lua-filesystem-1.4.2-1.el6.x86_64.rpm | 24 kB 00:00
(3/5): lua-lxc-1.0.11-1.el6.x86_64.rpm | 16 kB 00:00
(4/5): lxc-1.0.11-1.el6.x86_64.rpm | 124 kB 00:00
(5/5): lxc-libs-1.0.11-1.el6.x86_64.rpm | 257 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 554 kB/s | 429 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : lxc-libs-1.0.11-1.el6.x86_64 1/5
Installing : lua-filesystem-1.4.2-1.el6.x86_64 2/5
Installing : lua-lxc-1.0.11-1.el6.x86_64 3/5
Installing : lua-alt-getopt-0.7.0-1.el6.noarch 4/5
Installing : lxc-1.0.11-1.el6.x86_64 5/5
Verifying : lua-alt-getopt-0.7.0-1.el6.noarch 1/5
Verifying : lxc-libs-1.0.11-1.el6.x86_64 2/5
Verifying : lxc-1.0.11-1.el6.x86_64 3/5
Verifying : lua-filesystem-1.4.2-1.el6.x86_64 4/5
Verifying : lua-lxc-1.0.11-1.el6.x86_64 5/5

Installed:
lxc.x86_64 0:1.0.11-1.el6

Dependency Installed:
lua-alt-getopt.noarch 0:0.7.0-1.el6 lua-filesystem.x86_64 0:1.4.2-1.el6 lua-lxc.x86_64 0:1.0.11-1.el6 lxc-libs.x86_64 0:1.0.11-1.el6

Complete!

Create your first container!

Let's check the available templates first:

ls /usr/share/lxc/templates/
lxc-altlinux lxc-busybox lxc-cirros lxc-download lxc-gentoo lxc-opensuse lxc-plamo lxc-ubuntu
lxc-alpine lxc-archlinux lxc-centos lxc-debian lxc-fedora lxc-openmandriva lxc-oracle lxc-sshd lxc-ubuntu-cloud

We use the lxc-create command, the relevant parts below are as follows:

-n = the name of the container

-t = template type (so if we see lxc-debian) we would type "debian"

-r = release (in Debian there is wheezy, sid, stretch etc..) that correspond to specific versions

-a = architecture (most commonly amd64 for 64bit or i386 for 386)

-p = the path this is optional but if you want it somewhere else like /mnt/sdb1 you would use this flag

lxc-create -n realtechtalk.com -t debian -- -r stretch -a amd64
/usr/share/lxc/templates/lxc-debian: line 574: type: debootstrap: not found
'debootstrap' command is missing
lxc_container: lxccontainer.c: create_run_template: 1092 container creation template for mywheezy failed
lxc_container: lxc_create.c: main: 274 Error creating container mywheezy
-bash-4.1# lxc-create -n realtechtalk.com -t debian -- -r stretch -a amd64
/usr/share/lxc/templates/lxc-debian: line 574: type: debootstrap: not found
'debootstrap' command is missing
lxc_container: lxccontainer.c: create_run_template: 1092 container creation template for realtechtalk.com failed
lxc_container: lxc_create.c: main: 274 Error creating container realtechtalk.com

Oops, we have a debootstrap missing command error. For Debian machines we need debootstrap:

yum -y install debootstap

Try again:

lxc-create -n realtechtalk.com -t debian -- -r stretch -a amd64 -p /mnt/sdb1/
debootstrap is /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/debian/rootfs-stretch-amd64 ...
gpg: key 2B90D010: "Debian Archive Automatic Signing Key (8/jessie) " not changed
gpg: Total number processed: 1
gpg: unchanged: 1
Downloading debian minimal ...
I: Retrieving InRelease
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id 126C0D24BD8A2942CC7DF8AC7638D0442B90D010)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Checking component main on http://deb.debian.org/debian...
^[[6~

I: Retrieving libacl1 2.2.52-3+b1
I: Validating libacl1 2.2.52-3+b1
I: Retrieving adduser 3.115
I: Validating adduser 3.115
I: Retrieving libapparmor1 2.11.0-3+deb9u2
...........

............


Tags:

install, lxc, containers, openvz, centos, aleady, ll, epel, yum, plugins, fastestmirror, loading, speeds, cached, hostfile, ubc, ca, mirrors, kernel, org, extras, updates, resolving, dependencies, transaction, _, installed, processing, dependency, lua, alt, getopt, liblxc, noarch, filesystem, libs, resolution, resolved, repository, installing, summary, download, downloading, packages, rpm, kb, rpm_check_debug, succeeded, verifying, container,

Latest Articles

  • python 3 pip cannot install mysql module
  • QEMU-KVM won't boot Windows 2016 or 2019 server on an Intel Core i3
  • Virtualbox vbox not starting "No suitable module for running kernel found"
  • Bind / named not responding to queries solution
  • Linux Mint How To Set Desktop Background Image From Bash Prompt CLI
  • ImageMagick Convert PDF Not Authorized
  • ImageMagick Converted PDF to JPEG some files have a black background solution
  • Linux Mint Mate Customize the Lock screen messages and hide username and real name
  • Ubuntu/Gnome/Mint/Centos How To Take a partial screenshot
  • ssh how to verify your host key / avoid MIM attacks
  • Cisco IP Phone CP-8845 8800/8900 Series How To Reset To Factory Settings Instructions
  • ls how to list ONLY directories
  • How to encrypt your SSH private key file id_rsa
  • Linux Mint 18 Disable User Name List from showing on Login Screen
  • Firefox Cannot Hit Enter Key In Address Bar and Location History Not Working
  • Cisco Unified Communications Manager / CUCM IP 8.6,10,12 Install Error Solution
  • Ubuntu Debian Mint Linux SSHD OpenSSH Server Not Starting After Reboot Solution
  • nmap how to scan for all ports and not just the 1000 most common ports
  • Windows 7,8,10 and Server 2008, 2012, 2016, 2019 Read Only Attribute Won't Go Away
  • bind / named how to make a wildcard record and retain defined A records