LXC LXD Commands (v2.x)
LXC & LXD: Befehle & Anwendungsbeispiele
Navigation
LXD ⇡
LXD Installation und Konfiguration überprüfen:
lxc info
lxc config show
General ⇡
Alle lokalen Containers auflisten:
lxc list
Der Befehl lxc list
kann mit verschiedenen Filtern umgehen.
Container mit spezifischen Namen auflisten (Regex ist auch erlaubt):
lxc list Ghost
+-----------+---------+---------------------+------+------------+----------------+
| NAME | STATUS | IPV4 | IPV6 | TYP | SCHNAPPSCHÜSSE |
+-----------+---------+---------------------+------+------------+----------------+
| Ghost | RUNNING | 192.168.XX.XX (eth0) | | PERSISTENT | 1 |
+-----------+---------+---------------------+------+------------+----------------+
| Ghost-old | STOPPED | | | PERSISTENT | 6 |
+-----------+---------+---------------------+------+------------+----------------+
Autostart Container auflisten:
lxc list "boot.autostart=true"
Privilegierte Container auflisten:
lxc list "security.privileged=true"
Remotes ⇡
Der default Remote ist local:
und muss somit nicht angegeben werden. Der default Remote kann aber auch geändert werden mit lxc remote set-default <remote>
+-----------------+------------------------------------------+---------------+--------+--------+
| local (Vorgabe) | unix:// | lxd | NEIN | JA |
+-----------------+------------------------------------------+---------------+--------+--------+
Alle Remotes auflisten:
lxc remote list
+-----------------+------------------------------------------+---------------+--------+--------+
| NAME | ADRESSE | PROTOCOL | PUBLIC | STATIC |
+-----------------+------------------------------------------+---------------+--------+--------+
| images | https://images.linuxcontainers.org | simplestreams | JA | NEIN |
+-----------------+------------------------------------------+---------------+--------+--------+
| local (Vorgabe) | unix:// | lxd | NEIN | JA |
+-----------------+------------------------------------------+---------------+--------+--------+
| ubuntu | https://cloud-images.ubuntu.com/releases | simplestreams | JA | JA |
+-----------------+------------------------------------------+---------------+--------+--------+
| ubuntu-daily | https://cloud-images.ubuntu.com/daily | simplestreams | JA | JA |
+-----------------+------------------------------------------+---------------+--------+--------+
Hinzufügen eines neuen Remotes:
lxc remote add [<remote>] <IP|FQDN|URL>
Entfernen eines Remotes:
lxc remote remove <remote>
Default Remote ändern:
lxc remote set-default ubuntu
Profiles ⇡
Profile auslisten:
lxc profile list
"default" Profil anschauen:
lxc profile show default
Profil löschen:
lxc profile delete <profile>
Beispiel: Mit Konfigurationsdatei config.yml
ein neues lxc profile erstellen. ⇡
Es ist nicht möglich "direkt" ein neues profile zu erstellen mit einer Konfigurationsdatei. Nur lxc profile edit <profile>
liest von STDIN. Es muss zuerst ein leeres profile erstellt werden.
Leeres profile erstellen:
> lxc profile create myprofile
Profile myprofile created
> lxc profile show myprofile
config: {}
description: ""
devices: {}
name: myprofile
used_by: []
Beispiel config.yml
Inhalt:
name: myprofile
config:
limits.cpu: "2"
limits.memory: 2GB
description: "My LXD profile description"
devices:
eth0:
nictype: bridged
parent: br0
type: nic
root:
path: /
pool: lxd_pool
size: 5GB
type: disk
Profile "myprofile" konfigurieren mit config.yml
cat config.yml | lxc profile edit myprofile
Profile überprüfen:
> lxc profile show myprofile
config:
limits.cpu: "2"
limits.memory: 2GB
description: My LXD profile description
devices:
eth0:
nictype: bridged
parent: br0
type: nic
root:
path: /
pool: lxd_pool
size: 5GB
type: disk
name: myprofile
used_by: []
Images ⇡
Alle lokalen images auflisten:
lxc image list
Image von einem Remote nach lokal kopieren:
> lxc image copy ubuntu:16.04 local: --alias myX
Image copied successfully!
Images können mehrere Aliasse besitzen. Ein Beispiel mit dem ALIAS Eintrag von myX (1 more)
beim auflisten der lokalen Images:
+--------------+---------------+--------+---------------------------------------------+--------+----------+------------------------------+
| ALIAS | FINGERABDRUCK | PUBLIC | BESCHREIBUNG | ARCH | GRÖßE | HOCHLADEDATUM |
+--------------+---------------+--------+---------------------------------------------+--------+----------+------------------------------+
| myX (1 more) | 03c2fa6716b5 | Nein | ubuntu 16.04 LTS amd64 (release) (20170919) | x86_64 | 156.13MB | Sep 21, 2017 at 5:20am (UTC) |
+--------------+---------------+--------+---------------------------------------------+--------+----------+------------------------------+
...
Alias auflisten
lxc image alias list
Alias auflisten für remotes
lxc image alias list ubuntu:
Containers ⇡
Init ⇡
Container erstellen ohne diesen zu starten.
Gleicher Befehl wie "lxc launch" mit identischen Optionen. Einziger Unterschied: Container wird nicht gestartet.
lxc init ubuntu:16.04 u1
Launch ⇡
Neuen Container erstellen und starten.
Gleicher Befehl wie "lxc init" mit identischen Optionen. Einziger Unterschied: Container wird gestartet.
lxc launch ubuntu:16.04 con01
Restart ⇡
Container neustarten.
lxc restart con01
Examples⇡
Befehle auf allen "laufenden" Containern ausführen mit bash
.⇡
Ein Beispiel mit apt update
(dieser Befehl funtioniert nur wenn auf den Zielsystemen apt
vorhanden ist):
for ct in $(lxc list -c ns --format csv | grep -i running); do \
ct=${ct/,RUNNING/}; \
echo "update: $ct"; \
lxc exec ${ct} -- apt update; \
done
Sonstiges ⇡
- Permanentes ändern des Standard Editors für die
lxc <command> edit <stuff>
Befehle:
update-alternatives --config editor
- Temporäres ändern des Standard Editors für die aktuelle shell:
export EDITOR=vim
Interessante Links ⇡
-
LXC Grundbefehle
➟ https://www.thomas-krenn.com/de/wiki/LXD_Grundbefehle
[ Author: Georg Schönberger ] -
A clean start – How to prepare a minimal Debian template for LXC containers
➟ https://blog.no-panic.at/2016/08/11/a-clean-start-how-to-prepare-a-minimal-debian-template-for-lxc-containers/
[ Author: Florian Beer ]
Hinweis
Die Seite ist noch nicht vollständig und wird von Zeit zu Zeit aktualisiert. Falls ihr etwas beitragen möchtet, kontaktiert mich via Twitter.
Für die hier dargebotenen Informationen und Anleitungen besteht kein Anspruch auf Vollständigkeit, Aktualität und Richtigkeit