Compare commits

...

3 Commits

Author SHA1 Message Date
6aeb5ca655 revision 2023-09-28 21:40:34 +01:00
20ff1390dd refactoring 2022-12-13 00:53:15 +00:00
7d2beca0ca info 2022-12-13 00:12:20 +00:00
3 changed files with 164 additions and 150 deletions

248
README.md
View File

@@ -1,120 +1,128 @@
# 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
```
# 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/

View File

@@ -1,18 +1,18 @@
# Running Docker
on a lxc container
## setup lxc container for docker
### Config
- security.nesting: "true"
```bash
lxc config set $CONTAINER_NAME "security.nesting" "true"
#/scripts/lxc-config-docker-requirements.sh $CONTAINER_NAME
```
### setup ubuntu container
Install docker with fuse fs [more information] (/kb/docker)
# Running Docker
on a lxc container
## setup lxc container for docker
### Config
- security.nesting: "true"
```bash
lxc config set $CONTAINER_NAME "security.nesting" "true"
#/scripts/lxc-config-docker-requirements.sh $CONTAINER_NAME
```
### setup ubuntu container
Install docker with fuse fs [more information] (/kb/docker)

View File

@@ -1,16 +1,22 @@
#!/bin/bash
#start container
echo "$1"
echo "$2"
#lxc launch ubuntu $1 -p $2
#set docker requirements
curl -s "https://git.limbosolutions.com/kb/lxc/raw/branch/main/scripts/lxc-config-docker-requirements.sh" | bash -s $1
lxc restart $1
lxc exec $1 -- bash -c "apt update -y && apt upgrade -y"
LXC_CONTAINER_NAME=$1
LXC_PROFILE=$2
#setup docker
lxc exec $1 -- bash -c "curl -s \"https://git.limbosolutions.com/kb/docker/raw/branch/main/scripts/ubuntu-fuse-setup.sh\" | bash"
echo "container name: $LXC_CONTAINER_NAME"
echo "profile: $LXC_PROFILE"
#portainer
lxc exec $1 -- bash -c "curl -s \"https://git.limbosolutions.com/kb/portainer/raw/branch/main/scripts/setup.sh\" | bash"
echo "starting container"
lxc launch ubuntu $LXC_CONTAINER_NAME -p $LXC_PROFILE
echo "setting lxc docker requirements"
curl -s "https://git.limbosolutions.com/kb/lxc/raw/branch/main/scripts/lxc-config-docker-requirements.sh" | bash -s $LXC_CONTAINER_NAME
lxc restart $LXC_CONTAINER_NAME
echo "updating apt"
lxc exec $LXC_CONTAINER_NAME -- sh -c "apt-get update -qq >/dev/null"
echo "upgrading apt"
lxc exec $LXC_CONTAINER_NAME -- sh -c "apt-get upgrade -qq >/dev/null"
echo "installing fuse & docker"
lxc exec $LXC_CONTAINER_NAME -- bash -c "curl -s \"https://git.limbosolutions.com/kb/docker/raw/branch/main/scripts/ubuntu-fuse-setup.sh\" | bash"
echo "installing portainer"
lxc exec $LXC_CONTAINER_NAME -- bash -c "curl -s \"https://git.limbosolutions.com/kb/portainer/raw/branch/main/scripts/setup.sh\" | bash"