# lxc ## Setup requires snap ```bash sudo apt install snap ``` ```bash sudo snap install lxd sudo usermod -a -G lxd $(whoami) ``` Init Setup lxd ```bash sudo lxd init ``` ## Containers ### List ```bash lxc list ``` ### Get Info ```bash lxc info containername ``` ### Create ```bash lxc launch ubuntu containername ``` ### move ```bash lxc mv ubuntu ubuntu1 lxc mv ubuntu1 -s=poolname ``` ### Stop ```bash lxc stop containername ``` Exec bash on container ```bash lxc exec $containername bash ``` ### Exec multiple commands ```bash lxc exec "container name" -- bash -c "apt update -y && apt upgrade -y" ``` ### delete a container ```bash lxc rm "container name" #if force required lxc rm "container name" --force ``` ### Configuration Edit ```bash lxc config edit "container name" ``` Set value ```bash #Example lxc config set "container name" "security.nesting" "true" ``` ### Profile Management ```bash lxc profile remove "container name" "profile name to remote" lxc profile assign "container name" "profile name to assign" ``` ## Profiles ### macvlan only 1) create copy from default ```bash lxc profile copy default eth0_macvlan lxc profile edit eth0_macvlan ``` 1) edit new profile ```bash devices: eth0: nictype: macvlan parent: eth0 # parent ethernet name type: nic ``` ## swap swap on lxc limits.memory.swap: "false" swap on host https://www.shellhacks.com/swappiness-in-linux-ubuntu-how-to-change/