Table of Contents
Cómo instalar, crear y administrar LXC (contenedores de Linux) en RHEL/CentOS 7
LXC. acrónimo de Linux Containers. es una solución de virtualización liviana basada en el kernel de Linux, que prácticamente se ejecuta en la parte superior del sistema operativo, lo que le permite ejecutar múltiples distribuciones aisladas al mismo tiempo.
La diferencia entre LXC. y la virtualización KVM es que LXC no emula el hardware, pero comparte el mismo espacio de nombres del kernel, similar a las aplicaciones chroot.
Instalar y administrar LXC L inux Container en Linux
Esto hace que LXC sea una solución de virtualización muy rápida en comparación con otras soluciones de virtualización, como KVM, XEN o VMware.
Este artículo lo guiará sobre cómo instalar, implementar y ejecutar Contenedores LXC en distribuciones CentOS/RHEL y Fedora.
Requisitos
Un sistema operativo Linux que funcione con una instalación mínima:
- Instalación de CentOS 7 Linux
- Instalación de RHEL 7
- Instalación del servidor Fedora 23
Paso 1: Instalar la virtualización LXC en Linux
freestar.config.enabled_slots.push
1.. La virtualización LXC se proporciona a través de los repositorios de Epel. Para utilizar este repositorio, abra una terminal e instale los repositorios de Epel en su sistema emitiendo el siguiente comando:
# yum install epel-release
2.. Antes de continuar con la instalación de LXC proceso, asegúrese de que el intérprete de lenguaje Perl. y los paquetes debootstrap estén instalados emitiendo los siguientes comandos.
# yum install debootstrap perl libvirt
3.. Finalmente instale Solución de virtualización LXC con el siguiente comando.
# yum install lxc lxc-templates
4.. Una vez instalado el servicio LXC, verifique si LXC. y libvirt. el demonio se está ejecutando.
# systemctl status lxc.service # systemctl start lxc.service # systemctl start libvirtd # systemctl status lxc.service Verificación de salida de muestra Estado del demonio LXC [[email protected] ~] # systemctl status lxc.service. lxc.service-Inicialización del contenedor LXC y carga de código de arranque automático ed: cargado (/usr/lib/systemd/system/lxc.service; desactivado) Activo: inactivo (muerto) [[email protected] ~] # systemctl start lxc.service. [[email protected] ~] # systemctl status lxc.service. lxc.service-Inicialización del contenedor LXC y código de arranque automático cargado: cargado (/usr/lib/systemd/system/lxc.service; deshabilitado) Activo: activo (salido). desde el viernes 01-04-2016 02:33:36 EDT; 1min 37s ago Proceso: 2250 ExecStart =/usr/libexec/lxc/lxc-autostart-helper start (código = salido, estado = 0/SUCCESS) Proceso: 2244 ExecStartPre =/usr/libexec/lxc/lxc-devsetup (código = salido, estado = 0/ÉXITO) PID principal: 2250 (código = salido, estado = 0/ÉXITO) 01 de abril 02:33:06 correo systemd [1]: Iniciando la inicialización del contenedor LXC y el código de arranque automático … 01 de abril 02: 33:06 correo lxc-devsetup [2244]: Creando/dev/.lxc 01 de abril 02:33:06 correo lxc-devsetup [2244]:/dev es devtmpfs 01 de abril 02:33:06 correo lxc-devsetup [2244] : Creando/dev/.lxc/user 01 de abril 02:33:36 mail lxc-autostart-helper [2250]: Iniciando contenedores de arranque automático LXC: [OK] 01 de abril 02:33:36 mail systemd [1]: Contenedor LXC iniciado Código de inicialización y arranque automático.
y verifique el estado de virtualización del kernel LXC emitiendo el siguiente comando.
# lxc-checkconfig Salida de muestra Verificación de la configuración de virtualización del kernel LXC [[email protected] ~] # lxc-checkconfig. La configuración del kernel no se encuentra en/proc/config .gz; buscando … Configuración del kernel encontrada en/boot/config-3.10.0-229.el7.x86_64—Espacios de nombres—Espacios de nombres: habilitado. Espacio de nombres Utsname : habilitado. Espacio de nombres Ipc: habilitado. Espacio de nombres Pid: habilitado. Espacio de nombre de usuario: habilitado. Espacio de nombre de red: habilitado. Múltiple/instancias dev/pts: habilitado. –Grupos de control—Cgroup: habilitado. Cgroup bandera clone_children: habilitado. Cgroup dispositivo: habilitado. Cgroup programado: habilitado. Cuenta de CPU de Cgroup: habilitado. Controlador de memoria de Cgroup: habilitar d. Cgroup cpuset: habilitado. –Misc—Veth par dispositivo: habilitado. Macvlan: habilitado. Vlan: habilitado. Puentes: habilitado. Filtro de red avanzado: habilitado. CONFIG_NF_NAT_IPV4: habilitado. CONFIG_NF_NAT_IPV6 : habilitado. CONFIG_IP_NF_TARGET_MASQUERADE: habilitado. CONFIG_IP6_NF_TARGET_MASQUERADE: habilitado. CONFIG_NETFILTER_XT_TARGET_CHECKSUM: habilitado. –Checkpoint/Restore—restablecimiento de checkpoint: falta CONFIG_FHANDLE: habilitado. CONFIG_EVENTFD: habilitado. CONFIG_EPOLL : habilitado. CONFIG_UNIX_DIAG: habilitado. CONFIG_INET_DIAG: habilitado. CONFIG_PACKET_DIAG: habilitado. CONFIG_NETLINK_DIAG: habilitado. Capacidades de archivo: habilitado. Nota: Antes de iniciar un nuevo kernel, puede verificar su uso de configuración: CONFIG =/ruta/a/config/usr/bin/lxc-checkconfig
Paso 2 : Cree y administre contenedores LXC en Linux
5.. Para enumerar los contenedores de plantillas LXC disponibles ya instalados en su sistema, emita el siguiente comando.
# ls-alh/usr/share/lxc/templates/Listar Contenedores de Plantillas LXC en total 344K drwxr-xr-x. 2 root root 4.0K 1 de abril 02:32. drwxr-xr-x. 6 root root 100 1 de abril 02:32 ..-rwxr-xr-x. 1 raíz raíz 11K 15 de noviembre 10:19 lxc-alpine-rwxr-xr-x. 1 raíz raíz 14K 15 de noviembre 10:19 lxc-altlinux-rwxr-xr-x. 1 raíz raíz 11K 15 de noviembre 10:19 lxc-archlinux-rwxr-xr-x. 1 raíz raíz 9.7K 15 de noviembre 10:19 lxc-busybox-rwxr-xr-x. 1 raíz raíz 29K 15 de noviembre 10:19 lxc-centos-rwxr-xr-x. 1 raíz raíz 11K 15 de noviembre 10:19 lxc-cirros-rwxr-xr-x. 1 raíz raíz 17K 15 de noviembre 10:19 lxc-debian-rwxr-xr-x. 1 root root 18K 15 de noviembre 10:19 lxc-download-rwxr-xr-x. 1 raíz raíz 49K 15 de noviembre 10:19 lxc-fedora-rwxr-xr-x. 1 raíz raíz 28K 15 de noviembre 10:19 lxc-gentoo-rwxr-xr-x. 1 raíz raíz 14K 15 de noviembre 10:19 lxc-openmandriva-rwxr-xr-x. 1 raíz raíz 14K 15 de noviembre 10:19 lxc-opensuse-rwxr-xr-x. 1 raíz raíz 35K 15 de noviembre 10:19 lxc-oracle-rwxr-xr-x. 1 raíz raíz 12K 15 de noviembre 10:19 lxc-plamo-rwxr-xr-x. 1 raíz raíz 6.7K 15 de noviembre 10:19 lxc-sshd-rwxr-xr-x. 1 raíz raíz 23K 15 de noviembre 10:19 lxc-ubuntu-rwxr-xr-x. 1 root root 12K 15 de noviembre 10:19 lxc-ubuntu-cloud
6.. El proceso de creación de un contenedor LXC es muy simple. La sintaxis del comando para crear un nuevo contenedor se explica a continuación.
# lxc-create-n nombre_contenedor-t plantilla_contenedor
En el siguiente extracto crearemos un nuevo contenedor llamado mydeb basado en una plantilla debian que será extraído de los repositorios de LXC.
Creando un contenedor LXC [[email protected] ~] # lxc-create-n mydcb-t debian. debootstrap es/usr/sbin/debootstrap Comprobando la descarga de la caché en/var/cache/lxc/debian/rootfs-jessie-amd64 … Descargando debian minimal … W: No se puede comprobar la firma de la versión; archivo de llavero no disponible/usr/share/keyrings/debian-archive-keyring.gpg I: Recuperando versión I: Recuperando paquetes I: Validando paquetes I: Resolviendo dependencias de paquetes requeridos … I: Resolviendo dependencias de paquetes base … … …
7.. Después de una serie de dependencias base y paquetes que se descargarán e instalarán en su sistema, se creará el contenedor. Cuando finalice el proceso, un mensaje mostrará la contraseña predeterminada de su cuenta de root. Cambie esta contraseña una vez que inicie e inicie sesión en la consola del contenedor para estar seguro.
son compatibles e instalados en su sistema. perl: warning: Volviendo a la configuración regional estándar (“C”). No se pudo leer/proc/cmdline. Ignorando: No existe tal archivo o directorio invoke-rc.d: policy-rc.d denegó la ejecución del inicio. La zona horaria del contenedor no está configurada. Ajústelo manualmente. La contraseña de root es ‘ root. , ¡cámbiela!. Generando configuraciones regionales (esto puede llevar un tiempo) … en_IN.en_IN .. No se encontró el archivo de mapa de caracteres `en_IN ‘: No existe ese archivo o directorio/usr/share/i18n/locales/en_IN: 55: LC_MONETARY: carácter desconocido en el campo` currency_symbol’ hecho Generación completa.
8.. Ahora, puede usar lxc-ls para listar sus contenedores y lxc-info para obtener información sobre un contenedor en ejecución/detenido.
Para iniciar el contenedor recién creado en segundo plano (se ejecutará como un demonio especificando la opción-d) emita el siguiente comando:
# lxc-start-n mydeb-d
9.. Después de contenedor se ha iniciado, puede enumerar los contenedores en ejecución utilizando el comando lxc-ls–active y obtener información detallada sobre el contenedor en ejecución.
# lxc-ls–active
10.. Para iniciar sesión en la consola del contenedor, emita el comando lxc-console con un nombre de contenedor en ejecución. Inicie sesión con el usuario root y la contraseña generada por defecto por lxc supervisor.
Una vez que haya iniciado sesión en el contenedor, puede ejecutar varios comandos para verificar la distribución mostrando el contenido del archivo/etc/issue.net, cambie la contraseña de root emitiendo el comando passwd o vea los detalles sobre las interfaces de red con ifconfig.
# lxc-console-n mydeb # cat/etc/issue.net # ifconfig # passwd Salida de muestra Conéctese al contenedor LXC [[email protected ] ~] # lxc-console-n mydcb. Conectado a tty 1 Escribe & ltCtrl + aq> para salir de la consola,
11.. Para desconectar del contenedor consola y regrese a su consola host, dejando el contenedor en estado activo, presione Ctrl + a y luego q en el teclado.
Para detener el contenedor en ejecución, ejecute el siguiente comando.
# lxc-stop-n mydcb
12.. Para crear un contenedor LXC basado en una plantilla de Ubuntu, ingrese/usr/sbin/directorio y cree el siguiente enlace simbólico debootstrap.
# cd/usr/sbin # ln-s debootstrap qemu-debootstrap
13.. Edite el archivo qemu-debootstrap con Vi. editor y reemplace las siguientes dos líneas MIRROR. de la siguiente manera:
DEF_MIRROR = ”http://mirrors.kernel.org/ubuntu” DEF_HTTPS_MIRROR = ”https://mirrors.kernel.org/ubuntu ”
Para referencia, consulte el siguiente contenido y coloque las dos líneas anteriores como se indica:
…. MAKE_TARBALL =” “EXTRACTOR_OVERRIDE =” “UNPACK_TARBALL =” “ADDITIONAL =” “EXCLUDE =” ” VERBOSE = “” CERTIFICATE = “” CHECKCERTIF = “” PRIVATEKEY = “” DEF_MIRROR = ”http://mirrors.kernel.org/ubuntu” DEF_HTTPS_MIRROR = ”https://espejos .kernel.org/ubuntu ”
14.. Finalmente crea un nuevo contenedor LXC basado en Ubuntu. template emitiendo el mismo comando lxc-create.
Una vez que finaliza el proceso de generación del contenedor de Ubuntu, un mensaje mostrará las credenciales de inicio de sesión predeterminadas del contenedor como se ilustra en la captura de pantalla siguiente.
# lxc-create-n myubuntu-t ubuntu Salida de muestra Crear contenedor de Ubuntu LXC Comprobando la descarga de caché en/var/cache/lxc/exact/rootfs-amd64 … Instalando paquetes en la plantilla: ssh, vim, language-pack-en Descargando ubuntu precisa mínima .. .
15.. Para crear un contenedor específico basado en una plantilla local, use la siguiente sintaxis:
# lxc-create-n nombre_contenedor-t plantilla_contenedor–r distro_release-a distro_architercture
Aquí hay un extracto de la creación de un contenedor debian wheezy. con una arquitectura de sistema amd64.
# lxc-create-n mywheezy-t debian–r wheezy-a amd64 Salida de muestra Crear un contenedor LXC basado en la arquitectura de distribución debootstrap es/sbin/debootstrap Comprobación de la descarga de caché oad en/var/cache/lxc/debian/rootfs-wheezy-amd64 … Descargando debian minimal … W: No se puede comprobar la firma de la versión; archivo de llavero no disponible/usr/share/keyrings/debian-archive-keyring.gpg I: Recuperando versión I: Recuperando paquetes I: Validando paquetes I: Resolviendo dependencias de paquetes requeridos … I: Resolviendo dependencias de paquetes base … I: Se encontraron dependencias adicionales requeridas: insserv libbz2-1.0 libdb5.1 libsemanage-common libsemanage1 libslang2 libustr-1.0-1 I: Se encontraron dependencias base adicionales: adduser debian-archive-keyring gnupg gpgv isc-dhcp-common libapt-pkg4.12 libbsd0 libclass-isa-perl libedit2 libgdbm3 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libncursesw5 libprocps0 libreadline6 libssl1.0.0 libstdc ++ 6 módulos de cliente libswitch-openssh libusb-perl-0.1-4 Comprobando el componente principal en http://http.debian.net/debian … I: Recuperando libacl1 2.2.51-8 I: Validando libacl1 2.2.51-8 I: Recuperando adduser 3.113 + nmu3 I: Validando adduser 3.113 + nmu3 I: Recuperando apt 0.9.7.9 + deb7u7 I: Validando apt 0.9.7.9 + deb7u7 I: Recuperando libapt-pkg4.12 0.9.7.9 + deb7u7 I: Validando libapt-pkg4.12 0.9.7.9 + deb7u7 I: Recuperando libattr1 1: 2.4.46-8 I: Validando libattr1 1: 2.4 .46-8 I: Recuperando archivos base 7.1wheezy9 I: Validando archivos base 7.1wheezy9 I: Recuperando base-passwd 3.5.26 …
16.. Por ejemplo, contenedores específicos para También se pueden crear diferentes versiones de distribución y arquitecturas a partir de una plantilla genérica que se descargará de los repositorios LXC como se ilustra en el siguiente ejemplo.
# lxc-create-n mycentos6-t download–d centos-r 6-a i386
Aquí está la lista de modificadores de línea de comando lxc-create:
-n = nombre-t = plantilla-d = distribución-a = arch-r = release
17.. Los contenedores se pueden eliminar de su host con el comando lxc-destroy emitido contra un nombre de contenedor.
# lxc-destroy-n mywheezy
18.. Se puede clonar un contenedor desde un contenedor existente emitiendo el comando lxc-clone:
# lxc-clone mydeb mydeb-clone
19.. Y finalmente, todos los contenedores creados residen en el directorio/var/lib/lxc/. Si por alguna razón necesita ajustar manualmente la configuración del contenedor, debe editar el archivo de configuración de cada directorio del contenedor.
# ls/var/lib/lxc
Estas son solo las cosas básicas que necesita saber para poder Ábrase camino alrededor de LXC.