¿Preguntas y respuestas sobre Docker?

A continuación, se incluyen preguntas frecuentes de entrevistas de trabajo de Docker para los ingenieros de DevOps más nuevos u experimentados.

Otros Enlaces Interesantes: ? ¿Qué es Docker? / ? Entornos en la Nube / ? Cursos de Servicios en la Nube / ? Cursos Gratis de la Fundación Linux

Contenidos

1. ¿Qué es Docker?

Docker es una tecnología de contenedorización ligera de código abierto que ha ganado una gran popularidad en el mundo del empaquetado de aplicaciones y la nube.

Docker te permite automatizar la implementación de aplicaciones en contenedores ligeros y portátiles.

¿Cómo aprender Docker? Desde cero hasta los comandos más importantes

2. ¿Cuáles son las ventajas de utilizar un contenedor Docker?

Existen las siguientes ventajas a la hora de utilizar Docker:

  • Docker ofrece una configuración inicial eficiente y sencilla
  • Permite describir el ciclo de vida de una aplicación al detalle
  • Docker permite una configuración sencilla e interactúa con Docker Compose
  • La documentación te proporciona toda la información necesaria

3. ¿Cuáles son las características importantes de Docker?

Estas son las características esenciales de Docker:

  • Modelado fácil
  • Control de versiones
  • Colocación / Afinidad
  • Agilidad de aplicación
  • Productividad del desarrollador
  • Eficiencias operativas

4. ¿Cuáles son los principales inconvenientes de Docker?

Algunos inconvenientes notables de Docker son:

  • No proporciona una opción de almacenamiento
  • Ofrece una mala opción de seguimiento
  • Sin reprogramación automática para los nodos inactivos
  • Configuración complicada de escalado horizontal automático

5. ¿Qué es una imagen de Docker?

La imagen de Docker ayuda a crear contenedores de Docker. Puedes crear una imagen de Docker con el comando de compilación. Debido a esto, se crea un contenedor que se inicia cuando comienza a ejecutarse. Todas las imágenes de Docker se almacenan en el registro de Docker.

6. ¿Qué es el motor de Docker?

El demonio de Docker o motor de Docker representa al servidor. El demonio de Docker y los clientes de Docker, deben ejecutarse en el mismo host o en un host remoto, que puede comunicarse a través de la línea de comandos del cliente binario y la API RESTful completa.

7. Explica que tipos de registros existen.

Hay dos tipos de registros:

  • Registro público
  • Registro privado

El registro público de Docker se llama Docker Hub, que te permite almacenar imágenes de forma privada. En Docker Hub, puedes almacenar millones de imágenes.

8. ¿Qué comando debería ejecutar para ver todos los contenedores en ejecución en Docker?

$ docker ps

9. ¿Cuál es el comando para detener un contenedor de Docker?

$ sudo docker stop nombre contenedor

10. ¿Cuál es el comando para ejecutar una imagen como contenedor?

$ sudo docker run -i -t alpine /bin/bash

11. ¿Cuáles son las instrucciones más comunes en Dockerfile?

Las instrucciones más comunes en Dockerfile son: FROM, LABEL, RUN y CMD.

12. ¿Qué es el indicador de intercambio de memoria?

Memory-swap es un atributo modificado que solo tiene significado si también se establece una memoria de intercambio. Swap permite que el contenedor escriba los requisitos de memoria expresos en el disco cuando el contenedor ha agotado toda la RAM disponible.

13. ¿Explica qué es Swarm (enjambre) en Docker?

Docker Swarm es una recopilación nativa de Docker que le ayuda a un grupo de hosts de Docker en un host de Docker único y virtual. Ofrece la interfaz del programa de aplicación Docker estándar.

14. ¿Cómo se puede supervisar Docker en entornos de producción?

Los estados de Docker y los eventos de Docker se utilizan para supervisar Docker en el entorno de producción.

15. ¿Cuáles son los estados del contenedor Docker?

Los estados importantes del contenedor Docker son:

  • Corriendo
  • Pausado
  • Reiniciando
  • Salida

16. ¿Qué es Docker Hub?

Docker Hub es un registro basado en la nube que le ayuda a enlazar con repositorios de código. Le permite crear, probar y almacenar su imagen en la nube de Docker. También puede implementar la imagen en su host con la ayuda de Docker Hub.

17. ¿Qué es la virtualización?

La virtualización es un método de dividir lógicamente mainframes para permitir que múltiples aplicaciones se ejecuten simultáneamente.

Sin embargo, este escenario cambió cuando las empresas y las comunidades de código abierto pudieron ofrecer un método para manejar instrucciones privilegiadas. Permite que varios sistemas operativos se ejecuten simultáneamente en un solo sistema basado en x86.

18. ¿Qué es el hipervisor?

El hipervisor le permite crear un entorno virtual en el que operan las máquinas virtuales invitadas. Controla los sistemas de invitados y comprueba si los recursos se asignan a los invitados según sea necesario.

19. Explica las etiquetas de los objetos de Docker.

Las etiquetas de objetos de Docker son un método para aplicar metadatos a objetos de Docker, incluidos imágenes, contenedores, volúmenes, red, nodos de nado y servicios.

20. ¿Escribe un archivo Docker para crear y copiar un directorio y construirlo usando módulos de Python?

FROM pyhton: 2.7-slim
WORKDIR /app
COPY . /app
docker build –tag

21. ¿Dónde se almacenan los volúmenes de Docker?

Necesitas navegar a la ruta de:

 /var/lib/docker/volumes

22. Enumera algunos de los comandos avanzados más importantes de Docker.

Comando Descripción
docker info Comando de información
docker pull Descargar una imagen
docker stats Información del contenedor
docker images Lista de imágenes descargadas

23. ¿Cómo ocurre la comunicación entre el cliente Docker y Docker Daemon?

Puedes comunicarte entre el cliente Docker y Docker Daemon con la combinación de Rest API, socket.IO y TCP.

24. Explica el método de implementación de Integración continua (CI) y Desarrollo continuo (CD) en Docker.

Debes seguir los siguientes pasos:

  • Ejecutar Jenkins en Docker
  • Puede ejecutar pruebas de integración en Jenkins usando docker-compose

25. ¿Cuáles son los comandos para controlar Docker con Systemd?

systemctl start/stop docker
service docker start/stop

26. ¿Cómo usar JSON en lugar del archivo de redacción YAML?

docker-compose -f docker-compose.json up

27. ¿Cuál es el comando que debe dar para enviar la nueva imagen al registro de Docker?

docker push myorg/img

28. ¿Cómo incluir código con copiar / agregar o volúmenes?

En el archivo docker, necesitamos usar la directiva COPY o ADD. Esto es útil para reubicar el código. Sin embargo, deberíamos usar un volumen si queremos hacer cambios.

29. Explica el proceso de escalado de tus contenedores Docker.

Los contenedores Docker se pueden escalar a cualquier nivel, desde unos pocos cientos hasta miles o millones de contenedores. La única condición para esto es que los contenedores necesitan la memoria y el sistema operativo en todo momento, y no debería haber una restricción cuando el Docker se escala.

30. ¿Cuál es el método para crear un contenedor Docker?

Puedes usar cualquiera de las imágenes específicas de Docker para crear un contenedor de Docker usando el siguiente comando.

docker run -t -i nombre comando

Este comando no solo crea el contenedor, sino que también lo inicia.

31. ¿Cuáles son los pasos del ciclo de vida del contenedor Docker?

A continuación, se muestran los pasos para el ciclo de vida de Docker:

  • Construir
  • Empujar / Cargar
  • Correr

32. ¿Cómo se pueden ejecutar varios contenedores con un solo servicio?

Al usar docker-compose, puedes ejecutar varios contenedores con un solo servicio; todos los archivos de composición de Docker utilizan el lenguaje yaml.

33. ¿Qué es CNM?

CNM son las siglas de Container Networking Model. Es un estándar o especificación de Docker, Inc. que forma la base de la red de contenedores en un entorno Docker. El enfoque de Docker proporciona redes de contenedores con soporte para múltiples controladores de red.

34. ¿Docker ofrece soporte para IPV6?

Sí, Docker ofrece compatibilidad con IPv6. La red IPv6 solo se admite en demonios Docker que se ejecutan en hosts Linux. Sin embargo, si desea habilitar la compatibilidad con IPv6 en el demonio de Docker, debe modificar /etc/docker/daemon.json y establecer la clave ipv6 en verdadero.

35. ¿Se pueden perder datos cuando un contenedor se detiene?

No, los datos que su aplicación escribe en el disco se almacenan en un contenedor. El sistema de archivos del contenedor persiste incluso después de que el contenedor se detiene.

36. ¿Cuáles son los tipos diferentes de tipos de montaje de volumen disponibles en Docker?

Enlazar montajes: Se pueden almacenar en cualquier lugar del sistema host.

37. ¿Cómo se configura el controlador de registro predeterminado en Docker?

Para configurar el demonio de Docker de manera predeterminada a un controlador de registro específico. Debes establecer el valor de log-driver en el nombre de la unidad de registro daemon.jason.fie .

38. Explica el registro de confianza de Docker.

Docker Trusted Registry es el peaje de almacenamiento de imágenes de nivel empresarial para Docker. Debe instalarlo después de su firewall para que pueda administrar de forma segura las imágenes de Docker que usa en sus aplicaciones.

39. ¿Qué son los espacios de nombres de Docker?

El espacio de nombres en Docker es una técnica que ofrece espacios de trabajo aislados denominados contenedor. Los espacios de nombres también ofrecen una capa de aislamiento para los contenedores de Docker.

40. ¿Cuáles son los tres componentes de la arquitectura Docker?

  • Cliente
  • Docker-Host
  • Registro

41. ¿Qué es el cliente de Docker?

Docker proporciona herramientas de interfaz de línea de comandos al cliente para interactuar con el demonio de Docker.

42. ¿Cuál es el propósito de Docker_Host?

El Docker Host contiene contenedor, imágenes y demonio de Docker y nos ofrece un entorno completo para implementar y ejecutar una aplicación.

43. ¿Cómo se ejecutan varias copias del archivo Compose en el mismo host?

Compose usa el nombre del proyecto que le permite crear identificadores únicos para todos los contenedores y otros recursos de un proyecto. Para ejecutar varias copias de un proyecto, configure un nombre de proyecto personalizado usando la opción de línea de comandos -a o usando la variable de entorno COMPOSE_PROJECT_NAME.

Relacionados