Cómo administrar contenedores de Linux en Ubuntu con Docker
Otro enfoque para la virtualización ligera son los contenedores Linux (LXC), que proporcionan virtualización a nivel del sistema operativo. Sin gastos generales asociados con la ejecución de máquinas virtuales, LXC permite a los usuarios ejecutar múltiples instancias del sistema operativo Linux estándar en un entorno limitado de contenedor liviano. Los contenedores son útiles si desea crear un entorno de desarrollo/prueba replicable o implementar aplicaciones en un entorno limitado seguro.
Docker es una herramienta de código abierto desarrollada para facilitar la implementación de contenedores de Linux. Rápidamente se está convirtiendo en el estándar de facto para la tecnología de contenedores y es adoptado por las principales distribuciones de Linux como Ubuntu y Red Hat.
En este tutorial, demostraré cómo usar Docker para administrar contenedores de Linux en Ubuntu 14.04. Tenga en cuenta que los pasos pueden ser ligeramente diferentes para versiones anteriores de Ubuntu.
Actualmente, los paquetes Docker disponibles en Ubuntu sólo soportan sistemas de 64 bits. Para ejecutarlo en una máquina de 32 bits, debe crear una versión de 32 bits de Docker desde el código fuente (detalles aquí).
Instalar Docker
Utilice el comando apt-get para instalar Docker fácilmente.
$ sudo apt-get install docker.io
Para permitir que usuarios no root ejecuten Docker, agréguese al grupo de Docker. El siguiente comando permitirá al usuario actual ejecutar Docker sin privilegios de root.
$ sudo usermod -a -G docker $USER
Cierra sesión y vuelve a iniciarla para activar los cambios de membresía del grupo.
A continuación, edite el archivo de configuración de Docker para actualizar la ubicación del código binario de Docker.
$ sudo vi /etc/default/docker.io
DOCKER="/usr/bin/docker.io"
Reinicie el servicio Docker.
$ sudo service docker.io restart
Administrar contenedores Docker
Si desea iniciar un nuevo contenedor Docker para el sistema operativo Ubuntu, primero debe Obtenga el documento de imagen de Ubuntu Docker. El siguiente comando descargará el archivo de imagen de Docker a través de la red.
$ docker pull ubuntu
Puedes iniciar Ubuntu Docker en modo interactivo como se muestra a continuación. El último parámetro "/bin/bash" es el comando que se ejecutará dentro del contenedor después de iniciarlo, en este caso un simple comando de shell bash.
$ docker run -i -t ubuntu /bin/bash
El comando anterior iniciará inmediatamente un contenedor de Ubuntu (¡esa es la belleza de los contenedores!) y entregará el contenido del contenedor. . En este punto, debería tener acceso al sistema operativo estándar Ubuntu en un entorno sandbox.
Para salir de un contenedor Docker, escriba "salir" en el mensaje dentro del contenedor.
Puedes iniciar diferentes formas de contenedores. Por ejemplo, para iniciar un contenedor Fedora, ejecute el siguiente comando:
$ docker.io run -i -t fedora /bin/bash
Si no tiene un Fedora Docker imagen localmente, este comando La imagen se descargará automáticamente primero y luego se iniciará Docker.
Si desea iniciar un contenedor utilizando una distribución específica, escriba "salir" cuando se le solicite. Por ejemplo, para iniciar Ubuntu 13.04 Docker, ejecute el siguiente comando:
$ docker.io run -i -t ubuntu:13.04 /bin/bash
Container Networking
Docker utiliza puentes de Linux para conectar contenedores entre sí y conectarlos a redes externas. Después de instalar Docker, debería ver el puente Linux docker0 ensamblado automáticamente de forma predeterminada. Cada contenedor que cree se conectará a la interfaz del puente docker0.
Puente Linux personalizado
Si lo desea, también puede utilizar un puente Linux personalizado para interconectar contenedores. Para hacer esto, puede crear un puente personalizado y configurarlo como se muestra en la imagen a continuación. Puede asignar una subred separada al puente y asignarle a Docker una dirección IP desde esa subred. Usaré 10.0.0.0/24 como subred de Docker.
$ sudo apt-get install bridge-utils
$ sudo brctl addbr br0
$ sudo ifconfig br0 10.0.0.1 máscara de red 255.255.255.0
Para que Docker utilice un puente personalizado, agregue "-b=br0" a la variable DOCKER_OPTS en /etc/default/docker.io y reinicie el servicio Docker.
$ sudo service docker.io restart
En este punto, todos los contenedores nuevos se conectarán a br0 y su dirección IP se asignará automáticamente desde 10.0.0.0/24.
Otras personalizaciones
Hay algunas otras formas de personalizar la configuración de red predeterminada de Docker, principalmente cambiando la variable DOCKER_OPTS en /etc/default/docker.io.
"-dns 8.8.8.8 -dns 8.8.4.4": Especifica el servidor DNS utilizado por el contenedor.
"-icc=false": Mantenga los contenedores aislados entre sí.
Solución de problemas
1. Al ejecutar el comando docker.io, se produce el siguiente error.
marca unix /var/run/docker.sock: no existe tal archivo o directorio
Este error puede ocurrir porque el demonio Docker no se está ejecutando. Verifique el estado del demonio Docker y asegúrese de iniciarlo primero.
$ sudo service docker.io status
$ sudo service docker.io start