wiki/HowtoLXC.md

94 lines
2 KiB
Markdown
Raw Normal View History

2016-12-29 11:25:39 +01:00
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
# HowtoLXC
2017-01-23 15:50:05 +01:00
## Debian 8 (Jessie)
2016-12-29 11:25:39 +01:00
## Installation
~~~
2017-01-23 15:50:05 +01:00
# apt install lxc bridge-utils ??libvirt-bin?? debootstrap
2016-12-29 11:25:39 +01:00
~~~
2017-01-23 15:50:05 +01:00
## Mise en place du réseau virtuel
Obligatoire si vous voulez un accès Internet dans vos conteneurs. Une des façons de faire et de monter un bridge qui contiendra tout les conteneurs. Ensuite via iptables, on fera du NAT pour router le réseau privé du bridge via l'interface principale (souvent eth0).
2017-01-03 11:20:35 +01:00
2016-12-29 11:25:39 +01:00
~~~
# cat /etc/network/interfaces
[...]
auto br0
iface br0 inet static
2017-01-23 15:50:05 +01:00
address 192.0.2.254
2016-12-29 11:25:39 +01:00
netmask 255.255.255.0
~~~
~~~
2017-01-23 15:50:05 +01:00
# echo 1 > /proc/sys/net/ipv4/ip_forward
# /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#### /sbin/iptables -t nat -A POSTROUTING -s 10.1.0.254/24 -o br0 -j SNAT --to *IP de l'hyperviseur*
#### /sbin/iptables -A INPUT -p tcp --sport 11371 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
2016-12-29 11:25:39 +01:00
~~~
2017-01-03 11:20:35 +01:00
2017-01-23 15:50:05 +01:00
## Installation d'un container
En choisissant de créer un conteur avec `-t download`, cela vous permettra via un prompt de choisir quel type de distribution à installer.
2017-01-03 11:20:35 +01:00
2016-12-29 11:25:39 +01:00
~~~
2017-01-23 15:50:05 +01:00
# lxc-create -t download -n foo
2016-12-29 11:25:39 +01:00
~~~
2017-01-23 15:50:05 +01:00
On peut directement choisir quel type de distribution on veut.
2016-12-29 11:25:39 +01:00
~~~
2017-01-23 15:50:05 +01:00
# # lxc-create -t debian -n foo
2016-12-29 11:25:39 +01:00
~~~
2017-01-23 15:50:05 +01:00
### Déclarer le réseau virtuel dans la configuration du conteneur
Exemple avec la machine `foo`, via le fichier `/var/lib/lxc/foo/config`
2016-12-29 11:25:39 +01:00
~~~
lxc.network.type = veth
2017-01-23 15:50:05 +01:00
lxc.network.link = br0
lxc.network.ipv4 = 192.0.2.10/24
lxc.network.ipv4.gateway = 192.0.2.254
2016-12-29 11:25:39 +01:00
lxc.network.name = eth0
lxc.network.flags = up
~~~
## Utilisation
Démarrer un conteneur :
2017-01-03 11:20:35 +01:00
~~~
2017-01-23 15:50:05 +01:00
# lxc-start -n foo -d
2017-01-03 11:20:35 +01:00
~~~
2016-12-29 11:25:39 +01:00
Entrer dans un conteneur :
2017-01-03 11:20:35 +01:00
~~~
2017-01-23 15:50:05 +01:00
# lxc-attach -n foo
2017-01-03 11:20:35 +01:00
~~~
2016-12-29 11:25:39 +01:00
2017-01-23 15:50:05 +01:00
Arrêter un conteneur :
2017-01-03 11:20:35 +01:00
~~~
2017-01-23 15:50:05 +01:00
# lxc-stop -n foo
2016-12-29 11:25:39 +01:00
~~~
2017-01-03 11:20:35 +01:00
Autres commandes utiles :
2016-12-29 11:25:39 +01:00
~~~
2017-01-23 15:50:05 +01:00
# lxc-info -n foo
# lxc-console -n foo
# lxc-halt -n foo
# lxc-info -n foo
# lxc-destroy -n foo
2017-01-03 11:20:35 +01:00
~~~
2017-01-23 15:50:05 +01:00
Si systemd dans un container pose souci, on peut revenir à sysvinit.
~~~
# apt install sysvinit-core
~~~