26 Comandos Docker con ejemplos

Hoja de trucos del comando Docker para sysadmin y desarrolladores …


Docker es un sistema de contenedorización que empaqueta y ejecuta la aplicación con sus dependencias dentro de un contenedor. Hay varios comandos de Docker que debe conocer cuando trabaje con Docker. Este artículo trata sobre eso.

Si no sabe qué es Docker, puede tomar esto Curso de principiante de Udemy.

Encontrar la versión

Una de las primeras cosas que quiere saber es cómo encontrar la versión acoplada instalada.

[correo electrónico protegido]: / inicio / geekflare $ docker –version

Docker versión 18.09.6, compilación 481bc77

Descargando imagen

Supongamos que necesita extraer la imagen del acoplador de dockerhub (repositorio docker). El siguiente ejemplo de extracción de la imagen del servidor HTTP Apache.

[correo electrónico protegido]: / inicio / geekflare $ docker pull httpd

Uso de etiqueta predeterminada: último

último: extracción de la biblioteca / httpd

f5d23c7fed46: extracción completa

b083c5fd185b: extracción completa

bf5100a89e78: extracción completa

98f47fcaa52f: Pull complete

622a9dd8cfed: Pull complete

Resumen: sha256: 8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642

Estado: Imagen más nueva descargada para httpd: último

[correo electrónico protegido]: / inicio / geekflare $

Imágenes

Enumere todas las imágenes acopladas extraídas en el sistema con detalles de la imagen, como TAG / IMAGEN ID / TAMAÑO, etc..

[correo electrónico protegido]: / home / geekflare $ docker images

ID DE IMAGEN DE ETIQUETA DE REPOSITORIO TAMAÑO CREADO

httpd latest ee39f68eb241 Hace 2 días 154MB

hello-world último fce289e99eb9 Hace 6 meses 1.84kB

Secuenciaiq / hadoop-docker 2.7.0 789fa0a3b911 Hace 4 años 1.76GB

correr

Ejecute la imagen del acoplador mencionada en el comando. Este comando creará un contenedor acoplable en el que se ejecutará el servidor HTTP Apache.

[correo electrónico protegido]: / home / geekflare $ docker run -it -d httpd

09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e

Que esta corriendo?

ps enumera todos los contenedores acoplables que se ejecutan con detalles del contenedor.

[correo electrónico protegido]: / inicio / geekflare $ docker ps

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

09ca6feb6efc httpd               "httpd-foreground"   Hace 36 segundos Subir 33 segundos 80 / tcp suspicious_bell

Como puede ver, el servidor Apache se está ejecutando en este contenedor acoplable.

ps -a

Enumere todos los contenedores de Docker en ejecución / salidos / detenidos con detalles del contenedor.

[correo electrónico protegido]: / inicio / geekflare $ docker ps -a

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

09ca6feb6efc httpd                            "httpd-foreground"       Hace 51 segundos Hasta 49 segundos 80 / tcp suspicious_bell

2f6fb3381078 secuenciaiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   Hace 2 semanas Salido (137) hace 9 días quizzical_raman

9f397feb3a46 secuenciaiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh – …"   Hace 2 semanas Salió (255) Hace 2 semanas 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 49707 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcpterminado_ritchie

9b6343d3b5a0 hola-mundo                      "/Hola"                 Hace 2 semanas Salió (0) Hace 2 semanas peaceful_mclean

ejecutivo

Acceda al contenedor docker y ejecute comandos dentro del contenedor. Estoy accediendo al contenedor del servidor apache en este ejemplo.

[correo electrónico protegido]: / inicio / geekflare $ docker exec -it 09ca6feb6efc bash

[correo electrónico protegido]: / usr / local / apache2 # ls

bin build cgi-bin conf error Los íconos htdocs incluyen módulos de registros

[correo electrónico protegido]: / usr / local / apache2 #

Escriba exit y presione enter para salir del contenedor.

Retirar el contenedor

Elimine el contenedor acoplable con la identificación del contenedor mencionada en el comando.

[correo electrónico protegido]: / inicio / geekflare $ docker rm 9b6343d3b5a0

9b6343d3b5a0

Ejecute el siguiente comando para verificar si el contenedor se eliminó o no.

[correo electrónico protegido]: / inicio / geekflare $ docker ps -a

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

09ca6feb6efc httpd                            "httpd-foreground"       Hace un minuto Arriba Arriba Un minuto 80 / tcp suspicious_bell

2f6fb3381078 secuenciaiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh -d"   Hace 2 semanas Salido (137) hace 9 días quizzical_raman

9f397feb3a46 secuenciaiq / hadoop-docker: 2.7.0   "/etc/bootstrap.sh – …"   Hace 2 semanas Salió (255) Hace 2 semanas 2122 / tcp, 8030-8033 / tcp, 8040 / tcp, 8042 / tcp, 8088 / tcp, 19888 / tcp, 49707 / tcp, 50010 / tcp, 50020 / tcp, 50070 / tcp, 50075 / tcp, 50090 / tcpterminado_ritchie

Eliminar imagen

Elimine la imagen del acoplador con el ID de la imagen del acoplador mencionado en el comando

[correo electrónico protegido]: / inicio / geekflare $ docker rmi fce289e99eb9

Sin etiquetar: hello-world: último

Sin etiquetar: [correo electrónico protegido]: 41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8

Eliminado: sha256: fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

Eliminado: sha256: af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3

[correo electrónico protegido]: / inicio / geekflare $

Reiniciar Docker

Reinicie el contenedor acoplable con la identificación del contenedor mencionada en el comando.

[correo electrónico protegido]: / home / geekflare $ docker restart 09ca6feb6efc

09ca6feb6efc

Ejecute el siguiente comando y verifique el parámetro ESTADO para verificar si el contenedor se inició recientemente.

[correo electrónico protegido]: / inicio / geekflare $ docker ps

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

09ca6feb6efc httpd               "httpd-foreground"   Hace 6 minutos Hasta 9 segundos 80 / tcp suspicious_bell

Detener Docker

Detenga un contenedor con la identificación del contenedor mencionada en el comando.

[correo electrónico protegido]: / inicio / geekflare $ docker stop 09ca6feb6efc

09ca6feb6efc

Ejecute el siguiente comando para verificar si el contenedor aún se está ejecutando o si se ha detenido.

[correo electrónico protegido]: / inicio / geekflare $ docker ps

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

Iniciando Docker

Este comando en Docker inicia el contenedor de Docker con el ID del contenedor mencionado en el comando.

[correo electrónico protegido]: / inicio / geekflare $ docker start 09ca6feb6efc

09ca6feb6efc

Ejecute el siguiente comando para verificar si el contenedor se inició o no.

[correo electrónico protegido]: / inicio / geekflare $ docker ps

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

09ca6feb6efc httpd               "httpd-foreground"   Hace 8 minutos Subir 3 segundos 80 / tcp suspicious_bell

Matar

Detenga el contenedor acoplable de inmediato. El comando Docker stop detiene el contenedor con gracia, esa es la diferencia entre un comando kill y stop.

[correo electrónico protegido]: / inicio / geekflare $ docker kill 09ca6feb6efc

09ca6feb6efc

Ejecute el siguiente comando para ver si el contenedor se mató o no.

[correo electrónico protegido]: / inicio / geekflare $ docker ps

ID DE CONTENEDOR MANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS

Cometer

Guarde una nueva imagen acoplable con la identificación del contenedor mencionada en el comando en el sistema local. En el ejemplo a continuación, geekflare es el nombre de usuario y httpd_image es el nombre de la imagen.

[correo electrónico protegido]: / home / geekflare $ docker commit 09ca6feb6efc geekflare / httpd_image

sha256: d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c

Iniciar sesión

Inicie sesión en Docker Hub. Se le solicitarán las credenciales de Docker Hub para iniciar sesión.

[correo electrónico protegido]: / inicio / geekflare $ docker login

Inicie sesión con su Docker ID para insertar y extraer imágenes de Docker Hub. Si no tiene una ID de Docker, diríjase a https://hub.docker.com para crear una..

Nombre de usuario: geekflare

Contraseña:

Configure un asistente de credenciales para eliminar esta advertencia. Ver

https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Inicio de sesión exitoso

empujar

Cargue una imagen de docker con el nombre de la imagen mencionado en el comando en el dockerhub.

[correo electrónico protegido]: / inicio / geekflare $ docker push geekflare / httpd_image

La inserción se refiere al repositorio [docker.io/geekflare/httpd_image]

734d9104a6a2: empujado

635721fc6973: montado desde la biblioteca / httpd

bea448567d6c: montado desde la biblioteca / httpd

bfaa5f9c3b51: montado desde la biblioteca / httpd

9d542ac296cc: montado desde la biblioteca / httpd

d8a33133e477: montado desde la biblioteca / httpd

último: resumen: sha256: 3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679ac tamaño: 1574

Red Docker

El siguiente comando en Docker enumera los detalles de toda la red en el clúster.

[correo electrónico protegido]: / home / geekflare $ docker network ls

NOMBRE DE IDENTIFICACIÓN DE RED ÁMBITO DEL CONDUCTOR

85083e766f04 puente puente local

f51d1f3379e0 host host local

5e5d9a192c00 ninguno local nulo

Hay varios otros comandos de red docker.

[correo electrónico protegido]: / inicio / red geekflare $ docker

Uso: docker network COMMAND

Administrar redes

Comandos:

conectar Conectar un contenedor a una red

crear Crear una red

desconectar Desconectar un contenedor de una red

inspeccionar Mostrar información detallada en una o más redes

Lista de redes

podar Eliminar todas las redes no utilizadas

rm Eliminar una o más redes

Ejecute ‘docker network COMMAND –help’ para obtener más información sobre un comando.

Información de Docker

Obtenga información detallada sobre Docker instalado en el sistema, incluida la versión del kernel, el número de contenedores e imágenes, etc..

[correo electrónico protegido]: / inicio / geekflare $ docker info

Contenedores: 3

Corriendo: 1

Pausado: 0

Detenido: 2

Imágenes: 3

Versión del servidor: 18.09.6

Controlador de almacenamiento: overlay2

Sistema de archivos de respaldo: extfs

Admite d_type: true

Diferencia de superposición nativa: verdadero

Controlador de registro: archivo json

Cgroup Driver: cgroupfs

Complementos

Volumen: local

Red: puente host macvlan superposición nula

Registro: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog

Enjambre: inactivo

Tiempos de ejecución: runc

Tiempo de ejecución predeterminado: runc

Binario Init: docker-init

versión en contenedor: bb71b10fd8f58240ca47fbb579b9d1028eea7c84

versión runc: 2b18fe1d885ee5083ef9f0838fee39b62d653e30

versión init: fec3683

Opciones de seguridad:

Aparición

seccomp

Perfil: predeterminado

Versión de Kernel: 4.18.0-25-generic

Sistema operativo: Ubuntu 18.10

OSType: linux

Arquitectura: x86_64

CPU: 1

Memoria total: 4.982GiB

Nombre: geekflare

ID: RBCP: YGAP: QG6H: B6XH: JCT2: DTI5: AYJA: M44Z: ETRP: 6TO6: OPAY: KLNJ

Dir. Raíz de Docker: / var / lib / docker

Modo de depuración (cliente): falso

Modo de depuración (servidor): falso

Nombre de usuario: geekflare

Registro: https://index.docker.io/v1/

Etiquetas:

Experimental: falso

Registros inseguros:

127.0.0.0/8

Restauración en vivo habilitada: falso

Licencia de producto: Community Engine

Copiando archivo

Copie un archivo de un contenedor acoplable al sistema local.

En este ejemplo, estoy copiando el archivo httpd.pid dentro de un contenedor acoplable con el ID 09ca6feb6efc a / home / geekflare /

[correo electrónico protegido]: / home / geekflare $ sudo docker cp 09ca6feb6efc: /usr/local/apache2/logs/httpd.pid / home / geekflare /

[sudo] contraseña para geekflare:

Ejecute el siguiente comando para verificar si el archivo se copió o no.

[correo electrónico protegido]: / inicio / geekflare $ ls

Ejemplos de documentos de escritorio.desktop httpd.pid nginx_new.yml nginx.yml

Comprobando el historial

Muestra el historial de una imagen acoplable con el nombre de imagen mencionado en el comando.

sol[correo electrónico protegido]: / inicio / geekflare $ docker history httpd

IMAGEN CREADA CREADA POR TAMAÑO COMENTARIO

ee39f68eb241 hace 2 días / bin / sh -c # (nop) CMD ["httpd-foreground"] 0B

           Hace 2 días / bin / sh -c # (nop) EXPOSE 80 0B

           Hace 2 días / bin / sh -c # (nop) COPY file: c432ff61c4993ecd… 138B

           Hace 4 días / bin / sh -c set -eux; savedAptMark ="$ (apt-m… 49.1MB

           Hace 4 días / bin / sh -c # (nop) ENV HTTPD_PATCHES = 0B

           Hace 4 días / bin / sh -c # (nop) ENV HTTPD_SHA256 = b4ca9d05… 0B

           Hace 4 días / bin / sh -c # (nop) ENV HTTPD_VERSION = 2.4.39 0B

           Hace 4 días / bin / sh -c set -eux; apt-get update; apt-g… 35.4MB

           Hace 4 días / bin / sh -c # (nop) WORKDIR / usr / local / apache2 0B

           Hace 4 días / bin / sh -c mkdir -p "$ HTTPD_PREFIX"  && chow … 0B

           Hace 4 días / bin / sh -c # (nop) ENV PATH = / usr / local / apach… 0B

           Hace 4 días / bin / sh -c # (nop) ENV HTTPD_PREFIX = / usr / loc… 0B

           Hace 5 días / bin / sh -c # (nop) CMD ["golpetazo"] 0B

           Hace 5 días / bin / sh -c # (nop) ADD file: 71ac26257198ecf6a… 69.2MB

Comprobación de registros

Mostrar los registros del contenedor acoplable con la identificación contenida mencionada en el comando.

[correo electrónico protegido]: / inicio / geekflare $ docker registra 09ca6feb6efc

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

[Lun 15 de julio 14: 01: 55.400472 2019] [mpm_event: aviso] [pid 1: tid 140299791516800] AH00489: Apache / 2.4.39 (Unix) configurado – reanudando las operaciones normales

[Lun 15 de julio 14: 01: 55.400615 2019] [núcleo: aviso] [pid 1: tid 140299791516800] AH00094: Línea de comando: ‘httpd -D FOREGROUND’

[Lun 15 de julio 14: 08: 36.798229 2019] [mpm_event: aviso] [pid 1: tid 140299791516800] AH00491: atrapado SIGTERM, cerrando

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

[Lun 15 de julio 14: 08: 38.259870 2019] [mpm_event: aviso] [pid 1: tid 139974087980160] AH00489: Apache / 2.4.39 (Unix) configurado – reanudar las operaciones normales

[Lun 15 de julio 14: 08: 38.260007 2019] [núcleo: aviso] [pid 1: tid 139974087980160] AH00094: Línea de comando: ‘httpd -D FOREGROUND’

[Lun 15 de julio 14: 09: 01.540647 2019] [mpm_event: aviso] [pid 1: tid 139974087980160] AH00491: atrapado SIGTERM, cerrando

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

[Lun 15 de julio 14: 10: 43.782606 2019] [mpm_event: aviso] [pid 1: tid 140281554879616] AH00489: Apache / 2.4.39 (Unix) configurado – reanudar las operaciones normales

[Lun 15 de julio 14: 10: 43.782737 2019] [núcleo: aviso] [pid 1: tid 140281554879616] AH00094: Línea de comando: ‘httpd -D FOREGROUND’

AH00558: httpd: No se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

AH00558: httpd: no se pudo determinar de manera confiable el nombre de dominio completo del servidor, utilizando 172.17.0.2. Establezca la directiva ‘ServerName’ globalmente para suprimir este mensaje

[Lun Jul 15 14: 14: 08.270906 2019] [mpm_event: Notice] [pid 1: tid 140595254346880] AH00489: Apache / 2.4.39 (Unix) configurado – reanudando las operaciones normales

[Lun 15 de julio 14: 14: 08.272628 2019] [núcleo: aviso] [pid 1: tid 140595254346880] AH00094: Línea de comando: ‘httpd -D FOREGROUND’

Buscando imagen

Busque una imagen de docker en dockerhub con el nombre mencionado en el comando.

[correo electrónico protegido]: / inicio / geekflare $ docker buscar hadoop

NOMBRE DESCRIPCIÓN ESTRELLAS OFICIAL AUTOMATIZADA

secuenciaiq / hadoop-docker Una forma fácil de probar Hadoop 611 [OK]

uhopper / hadoop Imagen base de Hadoop con configuración dinámica … 98 [OK]

harisekhon / hadoop Apache Hadoop (HDFS + Yarn, etiquetas 2.2 – 2.8) 54 [OK]

bde2020 / hadoop-namenode Hadoop namenode de un clúster hadoop 22 [OK]

kiwenlau / hadoop Ejecutar clúster Hadoop en contenedores Docker 19

izone / hadoop Hadoop 2.8.5 Ecosistema completamente distribuido, Ju… 14 [OK]

uhopper / hadoop-namenode Hadoop namenode 9 [OK]

bde2020 / hadoop-datanode Hadoop datanode de un clúster hadoop 9 [OK]

singularidades / hadoop Apache Hadoop 8 [OK]

uhopper / hadoop-datanode Hadoop datanode 7 [OK]

harisekhon / hadoop-dev Apache Hadoop (HDFS + Yarn) + Dev Tools + Gi… 6 [OK]

Actualizando configuración

Actualizar configuraciones de contenedores. Esto muestra todas las opciones de actualización..

[correo electrónico protegido]: / home / geekflare $ docker update –help

Uso: actualización de Docker [OPCIONES] CONTENEDOR [CONTENEDOR …]

Actualizar la configuración de uno o más contenedores

Opciones:

–blkio-weight uint16 Block IO (peso relativo), entre 10 y 1000, o 0 para deshabilitar

(predeterminado 0)

–cpu-period int Limite el período de CPU CFS (Programador completamente justo)

–cpu-quota int Limita la cuota de CPU CFS (Programador completamente justo)

–cpu-rt-period int Limita el período de tiempo real de la CPU en microsegundos

–cpu-rt-runtime int Limita el tiempo de ejecución en tiempo real de la CPU en microsegundos

-c, –cpu-shares int CPU share (peso relativo)

–cpus decimal Número de CPU

–CPUs de cadena cpuset-cpus en las que permitir la ejecución (0-3, 0,1)

–cpuset-mems string MEMs para permitir la ejecución (0-3, 0,1)

–bytes de memoria del núcleo Límite de memoria del núcleo

-m, – bytes de memoria Límite de memoria

–bytes de reserva de memoria Límite flexible de memoria

–bytes de intercambio de memoria Límite de intercambio igual a memoria más intercambio: ‘-1’ para habilitar el intercambio ilimitado

–reiniciar cadena Reiniciar política para aplicar cuando sale un contenedor

Ejecute el siguiente comando para actualizar la configuración de la CPU del contenedor docker con la identificación del contenedor mencionada en el comando.

[correo electrónico protegido]: / inicio / geekflare $ docker update -c 1 2f6fb3381078

2f6fb3381078

Creando volumen

Cree un volumen que el contenedor acoplable usará para almacenar datos.

[correo electrónico protegido]: / home / geekflare $ docker volume create

7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Ejecute el siguiente comando si el volumen se creó o no.

[correo electrónico protegido]: / inicio / geekflare $ docker volumen ls

NOMBRE DE VOLUMEN DEL CONDUCTOR

local 7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

Instalar complemento

Instale un complemento de docker vieux / sshfs con el entorno de depuración establecido en 1.

[correo electrónico protegido]: / home / geekflare $ docker plugin install vieux / sshfs DEBUG = 1

Enchufar "vieux / sshfs" solicita los siguientes privilegios:

– red: [host]

– montaje: [/ var / lib / docker / plugins /]

– montaje: []

– dispositivo: [/ dev / fuse]

– capacidades: [CAP_SYS_ADMIN]

¿Concede los permisos anteriores? [y / N] y

último: extracción de vieux / sshfs

52d435ada6a4: descarga completa

Resumen: sha256: 1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811

Estado: Imagen más nueva descargada para vieux / sshfs: más reciente

Complemento instalado vieux / sshfs

Ejecute el siguiente comando para enumerar los complementos de Docker.

[correo electrónico protegido]: / inicio / geekflare $ docker plugin ls

ID NOMBRE DESCRIPCIÓN HABILITADO

2a32d1fb95af vieux / sshfs: el último complemento sshFS para Docker true

Cerrar sesión

Cerrar sesión de dockerhub.

[correo electrónico protegido]: / inicio / geekflare $ docker cerrar sesión

Eliminando credenciales de inicio de sesión para https://index.docker.io/v1/

Conclusión

Espero que ya haya entendido bien los comandos de Docker. Pruebe esos comandos en su entorno de desarrollo o laboratorio para practicar y aprender.

Si estás interesado en aprender Docker y Kubernetes, entonces mira esto curso por Internet.

TAGS:

  • Estibador

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map