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

  • How To Install OpenProject on Centos 7 Step-by-Step Guide
  • Ubuntu Debian Linux Cannot Install Wine Solution - wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu14.2) but it is not installable wine1.4 : Depends: wine1.6 but it is not going to be installed
  • How To Install python 3.4 3.5 and up on Linux with wine - Working Solution
  • using Xvfb on virtual remote ssh server to have X graphical programs work
  • ssh Received disconnect from port 22:2: Too many authentication failures
  • named bind errors - DNSKEY: unable to find a DNSKEY which verifies the DNSKEY RRset and also matches a trusted key for '.'
  • OpenVZ vs LXC DIR mode poor security in LXC
  • httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.d/php.conf: Cannot load modules/libphp5.so into server: /lib64/libresolv.so.2: symbol __h_errno, version GLIBC_PRIVATE not defined in file libc.s
  • Radeon R3 GPU on Debian Crashing
  • MySQL 5.7 on Debian and Ubuntu - How To Reset Root Password
  • SSH and sshfs timeout settings keepalive
  • Linux How To Add User To Additional Group
  • Howto Set Static IP on boot in initramfs for dropbear or other purposes NFS, Linux, Debian, Ubuntu, CentOS
  • Convert and install to LUKS Encrypted Drive Ubuntu 18.04 19.10 Linux Mint and Debian Based Linux
  • Debian and Netplan
  • CentOS 8 how to restart the network!
  • CentOS 8 how to convert to a bootable mdadm RAID software array
  • ADATA USB Thumb Drive Issues
  • KMODE EXCEPTION NOT HANDLED - QEMU/KVM Won't Boot Windows 2016 or 10 Image or Physical Machine
  • Linux Mint / Ubuntu / Debian Mate Disable Guest Session and Hide Usernames on Lightdm Login screen GUI