[:fr]

  • Lister les machines existantes : lxc-ls -f
  • Démarrer une machine : lxc-start -n machine1
  • Ouvrir un shell : lxc-attach -n machine1
  • Créer un répertoire partagé entre la machine physique et une machine LXC : lxc.mount.entry = /chemin/sur/la/machine/physique chemin/sur/la/machine/lxc none rw,bind 0.0

https://wiki.centrale-marseille.fr/ginfo/tutoriels:faire_un_lxc

Exemple de configuration réseau :

  • source : http://www.linuxembedded.fr/2013/07/configuration-reseau-de-lxc/
lxc.network.type = <type>
lxc.network.flags = up
lxc.network.link = <interface>
lxc.network.hwaddr = <MAC address>
lxc.network.ipv4 = <IPv4 address>
lxc.network.ipv6 = <IPv6 address>
  • Exemple

Exemple de lxc.network.type

    • empty : aucune interface réseau (hormis le loopback) dans le conteneur LXC
    • phys : utilisation de l’interface physique de l’hôte précisé dans lxc.network.link

    • veth : utilisation d’un bridge spécifié par lxc.network.link. Ce mode veth permet de créer deux interfaces : l’une est ajouté au bridge de l’hôte, l’autre est utilisée par le conteneur LXC. Chaque donnée émise sur une interface est reçu par l’autre.

    • vlan : utilisation d’un VLAN sur une interface de l’hôte. Le numéro du VLAN est spécifié avec lxc.network.vlan.id.

    • macvlan : utilisation de l’interface de l’hôte pour accéder au monde extérieur. Les échanges entre LXCs et entre un LXC et l’hôte ne sont pas possibles par défaut. Ceci permet de déléguer la gestion de la sécurité (pare-feu) à un switch particulier qui pourra retransférer des trames à destination d’un autre LXC ou de l’hôte.

  • macvlan en mode bridge : afin que les LXC puissent communiquer entre eux, il est possible de configurer le macvlan en mode bridge. Pour cela, il suffit d’ajouter l’option lxc.network.macvlan.mode = bridge dans le fichier de configuration. Ceci ne permettra toujours pas une communication des LXC avec la machine hôte. Pour cela, il faudra créer une interface macvlan sur l’hôte. Pour plus d’informations sur la marche à suivre, lisez cette article.

 

 

 

http://wiki.clusterlabs.org/wiki/Main_Page

 

https://www.linkedin.com/pulse/creating-linux-containers-lxc-christopher-scoran

 

https://www.google.fr/imgres?imgurl=https%3A%2F%2Fassets.flameeyes.eu%2F2010%2F09%2Flxc-veth&imgrefurl=https%3A%2F%2Fblog.flameeyes.eu%2F2010%2F09%2Flinux-containers-and-networking%2F&docid=K7lWc6bqZci_6M&tbnid=tb8hAjVwICGA7M%3A&vet=10ahUKEwiS2rPWrPTTAhUDcBoKHc1GCjwQMwgyKA0wDQ..i&w=500&h=300&noj=1&client=firefox-b-ab&bih=878&biw=1278&q=lxc&ved=0ahUKEwiS2rPWrPTTAhUDcBoKHc1GCjwQMwgyKA0wDQ&iact=mrc&uact=8

 

Docker lxc

  1. Browse the docker hub and find the image you want (say ubuntu)
  2. Download ubuntu rootfs: dlrootfs ubuntu
  3. Create a config file (for examples the one you can find in sample_configs/lxc-config)
  4. Do not forget to change the config to match your settings (especially rootfs location)
  5. Launch bash in the « official Docker ubuntu image LXC container »: lxc-start -n ubuntu -f <config file> /bin/bash

infra_lxc

Exemple config lxc

lxc.arch = amd64
lxc.include = /usr/share/lxc/config/debian.common.conf
lxc.monitor.unshare = 1
lxc.tty.max = 2
lxc.environment = TERM=linux
lxc.uts.name = CT-BLOP-MARIADB
lxc.cgroup.memory.limit_in_bytes = 536870912
lxc.cgroup.memory.memsw.limit_in_bytes = 1073741824
lxc.cgroup.cpu.shares = 1024
lxc.rootfs.path = /var/lib/lxc/101/rootfs
lxc.net.0.type = veth
lxc.net.0.veth.pair = veth101i0
lxc.net.0.hwaddr = 86:B7:C5:68:70:33
lxc.net.0.name = eth0
lxc.cgroup.cpuset.cpus = 0

 

lxc.network.type = none
 
lxc.rootfs = /var/lib/lxc/proxies/rootfs
lxc.start.auto = 1
# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf
 
# Container specific configuration
lxc.mount = /var/lib/lxc/proxies/fstab
lxc.utsname = proxies
lxc.autodev = 1
lxc.kmsg = 0

 

[:]