Installing Calculate in LXC
Updated 13 November 2021
- Installing the required packages
- Installing Calculate into a container
- Network configuration
- Start the container
- Configuring system in the container
- Adding applications in a container
- Update to v.4.0
Installing the required packages
To continue, you need to install :
emerge -a app-emulation/lxc
Installing Calculate into a container
To install Calculate Linux Container, run:
lxc-create -n calculate -t download -- --server mirror.calculate-linux.org --no-validate --arch x86_64 Downloading the image index WARNING: Running without gpg validation! --- DIST RELEASE ARCH VARIANT BUILD --- CCS 22 x86_64 default 20210113 --- Distribution: CCS Release: 22 Downloading the image index Downloading the rootfs Downloading the metadata The image cache is now ready Unpacking the rootfs --- You just created a Gentoo container (release=18, arch=amd64, variant=default) To enable sshd, run: rc-update add sshd For security reason, container images ship without user accounts and without a root password. Use lxc-attach or chroot directly into the rootfs to set a root password or create user accounts.
calculate with any name you want for your container. To use subvolumes, add
-B btrfs as an option when creating the root partition for the container. The script will display the available system images and prompt for distribution name,
CCS (in capital letters) and release number, 22 as of the date of this manual. The application will automatically fetch the container on the cloud and install it. The installed containers are stored in the directory.
In subsequent commands and paths, use the container name you replaced
Network configuration of the host computer
To configure the network in a LXC container, you will need to configure the network bridge on the host. To do this, select one of the two configuration options:
- If the host computer has multiple IP addresses - for example, if you will run the container on a desktop operating in the local network and receiving the IP via DHCP - you can configure the network by [using shared network containers] (network#ispolzovanie_obshchei_seti).
- If the host computer has a single IP address - for example, when running a container on a VPS or dedicated server - you can configure [network address translation] (network#transliatsiia_ip-adresov) via a single interface.
Network configuration of the container
Configure the network for your container:
# network type if bridge is used lxc.net.0.type = veth # start the network at system start lxc.net.0.flags = up # interface inside the container lxc.net.0.name = eth0 # bridge to be used by the virtual interface lxc.net.0.link = br0 # random MAC for the network interface of the container (first number must be even) lxc.net.0.hwaddr = 02:03:04:05:06:07
Replace the MAC address,
02:03:04:05:06:07. Please note that the first number must be even (addresses with an odd first number are multicast and cannot be assigned).
Start the container
To start the container, run:
Make sure the container is up and running:
Name: calculate State: RUNNING PID: 25107 CPU use: 3.03 seconds BlkIO use: 51.98 MiB Memory use: 61.21 MiB KMem use: 4.39 MiB Link: vethXLWII2 TX bytes: 516 bytes RX bytes: 516 bytes Total bytes: 1.01 KiB
Add the container to autostart:
ln -sf /etc/init.d/lxc /etc/init.d/lxc.calculate
rc-update add lxc.calculate
In order for the system in the container to start correctly once the network is up, create a file containing the following rule:
Configuring system in the container
Connect to the container to make further modifications or adjustments.
You can also edit settings in the container from the host computer, using the following syntax:
lxc-attach [HTML_REMOVED] -- [HTML_REMOVED]
Network configuration when using a shared network
If you are using a shared network (with local IPs), you can configure the network either with DHCP or by specifying an available IP address and a router IP address.
When using a DHCP server on a local network, you simply have to run the following:
rc-update add net.eth0
Network configuration when using NAT
If using [network address translation (NAT)] (network#transliatsiia_ip-adresov), edit the host settings accordingly:
cl-setup-network --iface eth0:192.168.11.2:24 --route default:192.168.11.1 --dns 220.127.116.11
rc-update add net.eth0
In the example, the container uses IP ~192.168.11.2~~ to route via ~192.168.11.1~.
Check the localization parameters and set the password:
cl-setup-locale -l ru_RU --timezone Europe/Moscow
You can also specify the complete hostname:
cl-setup-network --hostname calculate.mydomain.org
To check the changes, run:
Adding applications in a container
Update Portage in the container:
The first time you run the tool, it pulls the Portage tree and enabled overlays.
Now install the software you need for logging and cron jobs:
emerge -a app-admin/logrotate app-admin/syslog-ng sys-process/cronie
When you have completed the configuration, exit the container:
Update to v.4.0
Starting with LXC 4.0, one configuration file is used instead of separate files for the different container types. When upgrading from previous versions, adjustments must be made to the settings of the already prepared containers. Edit the path to the common configuration file:
#lxc.include = /usr/share/lxc/config/gentoo.common.conf lxc.include = /usr/share/lxc/config/common.conf
To run programs that use (e.g. PostgreSQL), add the tmpfs mount to this path in the configuration file of the container:
lxc.mount.entry = none dev/shm tmpfs rw,nosuid,nodev,create=dir