Introducción a Docker (Parte 3: Comandos básicos)

  En una entrada anterior del presente blog se ha visto qué era Docker y cuál era su utilidad, mientras que en otra entrada posterior  de este mismo blog se explicó un modo de instalar imágenes en este sistema ligero de virtualización directamente preparadas para funcionar con ciertos programas específicos.
  En esta entrada del blog sobre Docker se hablará de los comandos principales que se deben utilizar para el uso de este programa. Esto no significa que no existan otros comandos de gran utilidad con el mismo fin, pues Docker, al funcionar únicamente con intérpretes de comandos, posee una gran lista de comandos provechosos, algunos de los cuales se han visto ya o se verán en otras entradas del presente blog sobre este tema.


INSTALACIÓN DE DOCKER

   Existen dos versiones de Docker para instalar, la gratuita, o Community Edition (CE), y la de pago o Enterprise Edition (EE). Para las demostraciones del siguiente ejemplo se instalará la primera. Como en los ejemplos se empleará un Ubuntu 16.04 LTS, se realizará la instalación para las distribuciones Debian de Linux.
 Hay dos modos de instalar Docker en Ubuntu: descargándose el paquete ".deb" de "https://download.docker.com/linux/ubuntu/dists/", o utilizando el repositorio (aquí se explicará la segunda opción).
 En primer lugar, se debe preparar el Ubuntu para que descargue paquetes de la dirección de red del Docker. Para lo cual se tienen que instalar ciertos paquetes necesarios mediante los siguientes comandos (se debe recordar usar sudo si no se es administrador del sistema):
apt-get install \ 
apt-transport-https \ 
ca-certificates \ curl \ 
software-properties-common

   Seguidamente, mediante el comando curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - [o bien curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys (clave gpg)], se añade la clave gpg oficial del programa (en este ejemplo: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88), que se comprobará con el comando  apt-key fingerprint (últimos 8 dígitos seguidos de la clave gpg que se quiere comprobar). El resultado de la comprobación deberá ser parecido a:
pub 4096R/0EBFCD88 2017-02-22 
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com> sub 4096R/F273FCD8 2017-02-22

  Por último, dependiendo de la arquitectura del sistema operativo, se utilizará uno de los dos comandos apropiados para configurar el repositorio estable (en este caso se empleará el comando para una arquitectura "amd64"):
add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

  Preparado correctamente el repositorio de Docker, se actualizará la lista de paquetes con el comando sudo apt-get update, y se instalará la última versión del paquete mediante el comando sudo apt-get install docker-ce.
  Es posible instalar una versión anterior de Docker concreta comprobando la lista de antiguas versiones del programa y seleccionando la que más se ajusta a la distribución que se tenga de Linux.
  Para comprobar que el programa funciona sin problemas se puede utilizar el comando docker version como administrador (es decir, escribiendo sudo antes o accediendo al modo de administrador mediante el comando sudo su), o bien docker run hello-world, que es más exacto.



COMANDOS GENERALES

  Como enseguida se puede comprobar, los comandos de Docker, que sólo se pueden usar con permisos de administrador (aunque existen modos de obviar esto que se verán en futuras entradas del presente blog), casi siempre comienzan con el nombre del programa.
  La siguiente lista muestra los susodichos comandos (y, en algunos casos, los parámetros más útiles con los que trabajan) y su uso básico:
  docker attach (nombre de contenedor/identificador de contenedor): Entrar en el contenedor especificado en el comando, que tiene que estar activo.
  docker commit (nombre del contenedor/identificador del contenedor) (nombre de imagen): Crea una imagen de un contenedor.
   docker exec: Ejecuta en un contenedor.
  docker exec [-it] (nombre de contenedor) (nombre de imagen): Entra en un contenedor creado, que tiene que estar activado.
 docker exec [-i] [-t] (nombre del contenedor) touch (ruta de archivo): Crea un archivo dentro del contenedor desde fuera del mismo.
  docker export (nombre del contenedor/identificador del contenedor) > (nombre de archivo).tar: Guarda un contenedor en un archivo ".tar".
  docker --help: Abre el archivo de ayuda de Docker.
  docker images: Muestra las imágenes descargadas en Docker. Dentro de esta función, se muestran las siguientes características de la imagen:
  • Nombre del repositorio.
  • Puesto entre imágenes.
  • Número de indentificación de la imagen (ID).
  • Tiempo desde su creación.
  • Tamaño.
  docker info: Muestra información del programa.
  docker inspect (identificador de contenedor/nombre de contenedor): Inspecciona un contenedor desde fuera de él, devolviendo la información en un archivo de formato ".json".
  docker load < (nombre del archivo).tar: Restaura una imagen en Docker desde su archivo ".tar" correspondiente.
  docker ps [-a]: Muestra los contenedores existentes en Docker. La información adicional que también se muestra es:
  • Número de identificación.
  • Nombre de la imagen.
  • Intérprete de comandos.
  • Tiempo desde su creación.
  • Estado actual.
  • Puertos a los que está conectado.
  • Nombre del contenedor (dado aleatoriamente por el Docker si no se ha especificado al crear el contenedor).
  docker pull (nombre de imagen): Descarga la imagen especificada del repositorio de Docker (si existe).
  docker rm $(docker ps -a -q): Borra todos los contenedores que haya en Docker. 
  docker rm [-f] (nombre de contenedor): Borra el contenedor especificado en el comando (el parámetro "-f" fuerza el borrado).
  docker rmi $(docker images -q -a): Borra todos las imágenes que hay en Docker. Es conveniente que los contenedores asociados a estas estén eliminados antes de usar este comando.
  docker rmi [-f] (nombre de imagen): Borra la imagen especificada en el comando (el parámetro "-f" fuerza el borrado).
  docker run (nombre de imagen)(nombre de intérprete de comandos): Crea un contenedor a partir de la imagen especificada en el comando que funciona con el intérprete de comandos especificado en el mismo comando.
  docker run [-it] (nombre de imagen) (nombre de intérprete de comandos): Entra en el contenedor relacionado con la imagen especificada en el comando (no se debe utilizar si existen varios contenedores asociados a esa misma imagen).
  docker run (nombre del contenedor) ls [-l]: Lista en la pantalla el contenido del contenedor especificado en el comando.
  docker run --name (nombre personalizado del contenedor) [-d] [-p] (nº de puerto del anfitrión):(nº de puerto del contenedor) (nombre de imagen)
: Crea un contenedor de nombre personalizado vinculado al puerto del anfitrión mediante el puerto del contenedor.
  docker run [-p] (nº de puerto del anfitrión):(nº de puerto del contenedor) --name (nombre personalizado del contenedor) (nombre de imagen): Crea un contenedor de nombre personalizado asociado al puerto especificado en el comando.
  docker run -t -i (nombre de imagen) (nombre de intérprete de comandos): Descarga la imagen especificada en el comando del repositorio de Docker (si existe), crea su correspondiente contenedor, y accede a este último. Se utiliza cuando se necesita un contenedor de una imagen que aún no ha sido descargada en Docker.
  docker save (nombre de imagen) > (nombre de archivo).tar: Guarda una imagen en un archivo ".tar".
  docker search (nombre de archivo): Busca en el repositorio de Docker todo lo relacionado con ese archivo (imágenes y/o contenedores).
  docker start (identificador de contenedor): Inicia el contenedor especificado en el comando.
  docker stop (identificador de contenedor): Detiene el contenedor especificado en el comando.
  exit: Sale de un contenedor. Este comando se usa sólo cuando se está dentro de un  contenedor.


  Para mayor información sobre los comandos de Docker puede verse la sección "Engine (docker) CLI" del siguiente enlace.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.