Last active
October 23, 2021 17:46
-
-
Save kennwhite/be023860ec3150129e694ba4c3d6a7a4 to your computer and use it in GitHub Desktop.
LXC v4 notes (2/2021) for Ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Good tips here: https://www.cyberciti.biz/faq/install-lxd-on-ubuntu-20-04-lts-using-apt/ | |
# List all running services | |
systemctl list-units --all --type=service --no-pager | grep running | |
# Clean install of lxc (on host) - first lxd system, then lxc command line tools | |
sudo apt-get update | |
sudo apt-get upgrade | |
sudo apt install lxd | |
sudo adduser YOURUSERID lxd # (probably already there) | |
sudo apt install lxc-utils | |
# COMPLETELY NUKE lxc installs and all config/data/containers (on host): | |
# sudo apt-get purge --auto-remove lxc-utils | |
# sudo rm -rf /var/lib/lxc/* | |
# sudo rm -rf /var/cache/lxc/* | |
# Useful lxc admin commands on Ubuntu (here 20.04): | |
ls -lh /usr/bin/lxc* | |
# List all host system network devices, including virtual bridges | |
ifconfig | grep ': ' | |
lxc init # (defaults are fine, but set storage new loop device size to "100GB", and new bridge to "lxdbr1") | |
# "available over the network" is asking if you want to make your local LXD service remotely manageable (not on your laptop) | |
lxc profile list | |
lxc profile show default | |
lxc network list | |
lxc storage list | |
lxc storage show default | |
lxc image list images: | grep -i ubuntu | |
# To create an Ubuntu 20 container | |
lxc launch images:ubuntu/focal/amd64 ubuntu-focal-c1 # c1 is just convention for container 1 | |
lxc list --fast # (arch, create date, profile) | |
lxc list # (IP addresses & snapshot count) | |
lxc exec ubuntu-focal-c1 bash # As root | |
useradd -m demo # *inside container* | |
passwd demo | |
usermod -aG sudo demo | |
lxc exec ubuntu-focal-c1 -- su -s /bin/bash - demo # As normal user, with proper shell | |
# TO REMOVE AN INSTALLED CONTAINER: nuke the image, nuke the network, nuke the storage | |
# Note that "lxcbr0" may be used outside of lxc command line for, e.g., virtmgr, older Docker etc. | |
# If you *really* want to nuke it: | |
# sudo brctl delbr lxcbr0 | |
lxc network list | |
lxc network delete xxxx # (a "MANAGED" network device) | |
ifconfig lxcbr0 down | |
lxc-create -t download -n ubuntu20 -- -d ubuntu -r focal -a amd64 | |
lxc list | |
lxc delete ubuntu-bionic-c4B --force | |
lxc list | |
lxc storage list | |
lxc storage delete default | |
Error: The storage pool is currently in use | |
# Push a blank profile to the default, then you can delete all storage | |
lxc storage delete default | |
############################ | |
# Create a new Ubuntu 20.04 CLI container | |
$ sudo lxc-create -t download -n ubuntu20 -- -d ubuntu -r focal -a amd64 | |
Setting up the GPG keyring | |
Downloading the image index | |
Downloading the rootfs | |
Downloading the metadata | |
The image cache is now ready | |
Unpacking the rootfs | |
--- | |
You just created an Ubuntu focal amd64 (20210213_07:42) container. | |
To enable SSH, run: apt install openssh-server | |
No default root or user password are set by LXC. | |
############################ | |
$ lxc list | |
+-------------------+---------+---------------------+-----------------------------------------------+-----------+-----------+ | |
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | | |
+-------------------+---------+---------------------+-----------------------------------------------+-----------+-----------+ | |
| ubuntu-bionic-c4B | RUNNING | 10.96.85.111 (eth0) | fd42:cf66:3430:5ff5:216:3eff:fe04:88fb (eth0) | CONTAINER | 0 | | |
+-------------------+---------+---------------------+-----------------------------------------------+-----------+-----------+ | |
############################ | |
lxc storage info default | |
info: | |
description: "" | |
driver: zfs | |
name: default | |
space used: 3.52GB | |
total space: 289.17GB | |
used by: | |
images: | |
- 7bd2f48db1fda09b1da8682fd2648b7aef12ba14d63724de405bbf1f4e3d34aa | |
instances: | |
- ubuntu-bionic-c4B | |
profiles: | |
- default | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I need exactly this but for Centos 8.
Can it be done?