GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Estibador

Docker es un motor extensible de código abierto impulsado por Linux Containers que automatiza la implementación de aplicaciones como contenedores portátiles, livianos y autosuficientes. Para los fines de este tutorial, supondremos que ha seguido los pasos descritos en nuestraConfiguración y protección de una instancia informática, que su sistema está actualizado y que ha iniciado sesión en su Linode como root a través de SSH.

Instalación

A los efectos de esta guía, le mostraremos cómo instalar Docker en Ubuntu 12.04 y CentOS 6.4. Docker proporciona repositorios para cada una de estas distribuciones, lo que facilita la instalación.

Ubuntu 12.04 64bit

Aquí agregaremos el repositorio mantenido por Docker para Ubuntu e instalaremos el software.

  1. Docker está disponible como paquete en los repositorios de Ubuntu de Docker, pero solo para 64 bits. Primero, deberá agregar la clave del repositorio de Docker usando apt-key :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    
  2. Agregue el repositorio de Docker a sus fuentes apt:

    echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  3. Ejecute lo siguiente para apt-get update e instale lxc-docker :

    sudo apt-get update
    sudo apt-get install lxc-docker
    
  4. Para verificar que la instalación se haya completado correctamente, inicie un contenedor de Ubuntu de ejemplo. Este comando capturará automáticamente las imágenes faltantes, ejecutará el contenedor y proporcionará una sesión bash interactiva:

    sudo docker run -i -t ubuntu /bin/bash
    

    La salida debe parecerse a:

    # docker run -i -t ubuntu /bin/bash
    Unable to find image 'ubuntu' (tag: latest) locally
    Pulling repository ubuntu
    8dbd9e392a96: Download complete
    b750fe79269d: Download complete
    27cf78414709: Download complete
    [email protected]:/#
  5. Para salir del contenedor, escriba exit .

CentOS 6 64bit

Docker está disponible en el repositorio de EPEL como docker-io paquete solo para 64 bits.

  1. Para agregar el repositorio EPEL, instale el último paquete de lanzamiento de EPEL.

  2. Para instalar Docker, ejecute el siguiente comando:

    sudo yum -y install docker-io
    
  3. Para iniciar el demonio Docker, invoque service :

    sudo service docker start
    
  4. Si desea que el demonio Docker se inicie en el arranque, emita el siguiente comando:

    sudo chkconfig docker on
    
  5. Para verificar que la instalación se haya completado con éxito, inicie un contenedor Fedora de ejemplo. Este comando capturará automáticamente las imágenes faltantes, ejecutará el contenedor y proporcionará una sesión bash interactiva:

    sudo docker run -i -t fedora /bin/bash
    
  6. Para salir del contenedor, escriba exit .

¿Qué puedo hacer con Docker?

Docker permite a los usuarios empaquetar sus aplicaciones y configuraciones en imágenes livianas para su implementación como contenedores portátiles.

Hola mundo

Para ejecutar un contenedor Docker que imprima "hola mundo", ejecute el siguiente comando:

docker run ubuntu /bin/echo hello world

Debería devolver hello world .

Esto le dice a Docker que haga varias cosas:

  1. Si la imagen (Ubuntu) aún no existe localmente, descárguela del Docker Index.
  2. Cree un nuevo contenedor con la imagen base de Ubuntu con un sistema de archivos de lectura y escritura y una interfaz de red.
  3. Asigne una dirección IP al contenedor; configure NAT para reenviar el tráfico hacia y desde el contenedor.
  4. Ejecute el comando /bin/echo hello world e imprima la salida.
  5. Habiendo completado el proceso principal, el contenedor saldrá.

Escribir un Dockerfile para Nginx

Al crear una imagen, Docker sigue las instrucciones establecidas en un archivo llamado Dockerfile . Tenga en cuenta que el archivo debe llamarse Dockerfile y todos los archivos o carpetas requeridos por Dockerfile deben estar en el mismo directorio que Dockerfile mismo.

Ejecutando un programa como echo en un contenedor Docker es bastante simple. Sin embargo, para los programas que actúan como servidores, como Nginx, deberá asegurarse de que el programa esté configurado para no autodemonizarse.

Este es un Dockerfile de ejemplo para Nginx:

FROM        ubuntu:12.04
MAINTAINER  Jon Chen "[email protected]"

RUN         echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN         apt-get update
RUN         apt-get install -y nginx

RUN         echo "\ndaemon off;" >> /etc/nginx/nginx.conf
VOLUME      /etc/nginx/sites-enabled
VOLUME      /var/log/nginx

EXPOSE      80
CMD         ["nginx"]

La sintaxis de Dockerfile se ve así:

# Comment
INSTRUCTION arguments

Docker ejecuta las instrucciones de Dockerfile de arriba a abajo en orden. La primera instrucción debe ser FROM , que especifica la imagen base a partir de la cual desea construir su nueva imagen:

FROM ubuntu:12.04

Esto establece la imagen oficial de Ubuntu 12.04 como imagen base. También deseará utilizar la instrucción MAINTAINER para definir el autor de la imagen:

MAINTAINER Jon Chen "[email protected]"

A continuación, el RUN La instrucción ejecutará comandos en la imagen y confirmará los resultados. Cada confirmación se guarda y se usa para la siguiente instrucción. Por ejemplo, este RUN línea reemplaza el contenido de /etc/apt/sources.list en la imagen con deb http://archive.ubuntu.com/ubuntu precise main universe :

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list

Lo importante a recordar para programas como Nginx es asegurarse de que el programa no se ejecute como un demonio. El comportamiento predeterminado de Nginx como demonio es bifurcar los procesos de trabajo y luego salir del proceso maestro. Como Docker solo observa el PID del proceso original, el contenedor se detendrá prematuramente en lugar de ejecutarse de manera persistente. Para deshabilitar la daemonización, agregue la directiva de configuración daemon off a /etc/nginx/nginx.conf :

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

Para exponer un puerto dentro del contenedor al exterior del contenedor, use la instrucción EXPOSE:

EXPOSE 80

La instrucción CMD define el comando predeterminado que se ejecutará cuando se inicie el contenedor. En nuestro ejemplo, queremos ejecutar Nginx:

CMD ["nginx"]

De forma predeterminada, los contenedores de Docker no tienen almacenamiento persistente. Para compartir datos entre contenedores, utilice la función VOLUMEN:

VOLUME /etc/nginx/sites-enabled
VOLUME /var/log/nginx

Para montar un directorio desde el host en el contenedor, deberá especificar el directorio del host, el directorio del contenedor correspondiente y los permisos del directorio en la línea de comandos cuando ejecute el contenedor:

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
If "host-dir" is missing, then docker creates a new volume.

Para crear esta imagen, ejecute el siguiente comando en el mismo directorio que el Dockerfile. También puede especificar un repositorio y una etiqueta para su imagen con -t repo/tag :

docker build -t bsdlp/nginx .

Ejecute el siguiente comando para agregar /etc/nginx/sites-enabled y /var/log/nginx como volúmenes del host al contenedor, inicie el contenedor como un demonio y exponga el puerto 80 del contenedor como puerto 80 en el host:

docker run -d -p 80:80 -v /etc/nginx/sites-enabled:/etc/nginx/sites-enabled -v /var/log/nginx:/var/log/nginx bsdlp/nginx

Más información

Es posible que desee consultar los siguientes recursos para obtener información adicional sobre este tema. Si bien estos se proporcionan con la esperanza de que sean útiles, tenga en cuenta que no podemos garantizar la precisión o la puntualidad de los materiales alojados externamente.

  • Guía de introducción de Docker
  • Docker en GitHub
  • Índice oficial de imágenes de Docker

Docker
  1. Cómo instalar Docker en Ubuntu 16.04

  2. Cómo instalar Docker en Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. ¿Problemas de Docker en Ubuntu 20.04?

  4. Instalación de Docker (Ubuntu)

  5. ¿Cómo instalar Docker en Ubuntu 18.04?

Cómo instalar Bitwarden en Ubuntu 20.04

Cómo instalar Docker en Ubuntu 20.04, 18.04, 21.04

Instalar Portainer con Docker en Ubuntu

Cómo instalar Docker en Ubuntu 14.04

Cómo instalar Docker Compose en Ubuntu

Cómo instalar Docker en Ubuntu 18.04