Estibador crea aplicaciones envasadas Llamados contenedores. Cada contenedor proporciona un ambiente aislado similar a un máquina virtual (Vm). A diferencia de VMS, Contenedores Docker No ejecute un sistema operativo completo . Comparten el núcleo de su anfitrión y vieron virtualización a nivel de software.
[dieciséis] Conceptos básicos de Docker
Docker se ha convertido en una herramienta estándar para los desarrolladores de software y los administradores del sistema. Es una forma ordenada de iniciar rápidamente aplicaciones sin afectar el resto de su sistema. Puedes pasar un nuevo servicio con un solo
carrera docker
mando.
Los contenedores encapsulan todo lo necesario para ejecutar una solicitud, desde la dependencia del paquete OS a su propio código fuente. Usted define los pasos de creación de un contenedor como instrucciones en un
Fábrica
. Docker usa el archivo DOCER para construir un
imagen
.
Las imágenes definen el software disponible en contenedores. Esto es igualmente equivalente a iniciar una VM con un sistema operativo ISO. Si crea una imagen, cualquier usuario de Docker podrá iniciar su aplicación con
carrera docker
.
¿Cómo funciona Docker?
Los contenedores utilizan las características del kernel del sistema operativo para proporcionar entornos parcialmente virtualizados. Es posible crear contenedores desde cero con comandos como
chico
. Esto inicia un proceso con un directorio raíz específico en lugar de la raíz del sistema. Pero usar las características del kernel directamente es inquieta, insegura y propensa a errores.
Docker es una solución completa para la producción, distribución y uso de contenedores. Las versiones de Docker Modernas están compuestas por Varios componentes independientes. . Primero, está la ventana indicadora. Cli , que es lo que interactúas en tu terminal. El CLI envía comandos a un Demonio . Esto puede ejecutarse localmente o en un host remoto . El demonio es responsable de administrar los contenedores y las imágenes de las que están creadas.
El componente final se llama el Tiempo de ejecución del contenedor . El tiempo de ejecución invoca las características del kernel para iniciar realmente los contenedores. Docker es compatible con los tiempos de ejecución que se adhieren a la Especificación OCI. Este estándar abierto permite la interoperabilidad entre las diferentes herramientas de contenedorización.
No tiene que preocuparse demasiado por el funcionamiento interno de Docker cuando está comenzando por primera vez. Instalación
estibador
En su sistema le dará todo lo que necesita para construir y ejecutar contenedores.
¿Por qué tanta gente usa Docker?
Los contenedores se han vuelto tan populares porque resuelven muchos desafíos comunes en el desarrollo de software. La capacidad de contenerse una vez y correr en todas partes. reduce la brecha entre Su entorno de desarrollo y sus servidores de producción.
El uso de contenedores le da confianza en que cada ambiente es idéntico. Si tiene un nuevo miembro del equipo, solo necesitan
carrera docker
para establecer su propia instancia de desarrollo. Cuando inicie su servicio, puede usar su imagen de Docker para implementar en producción. los
ambiente en vivo
coincidirá exactamente con su instancia local, evitando "Funciona en los escenarios de mi máquina".
Docker es más conveniente que una máquina virtual completa. Las VMS son herramientas de uso general diseñadas para soportar todas las cargas de trabajo posible. Por el contrario, los contenedores son livianos, autosuficientes y más adecuados para los casos de uso desechables. Como Docker comparte el kernel del host, los contenedores tienen un impacto insignificante en el rendimiento del sistema. El tiempo de lanzamiento del contenedor es casi instantáneo, ya que solo está iniciando procesos, no un sistema operativo completo.
Empezando
Docker está disponible en todas las distribuciones populares de Linux. También se ejecuta en Windows y MacOS. Siga el Instrucciones de configuración de Docker para su plataforma para ponerlo en marcha.
Puede verificar que su instalación esté trabajando iniciando un contenedor simple:
Docker Run Hello-World
Esto iniciará un nuevo contenedor con lo básico.
Hola Mundo
imagen. La imagen emite cierta salida que explica cómo usar Docker. Luego, el contenedor sale, cayendo de vuelta a su terminal.
Creando imágenes
Una vez que hayas corrido
Hola Mundo
, estás listo para crear tus propias imágenes de Docker. Un archivo Docker describe cómo ejecutar su servicio por
Instalación de software requerido
y copiando en archivos. Aquí hay un ejemplo simple utilizando el servidor web de Apache:
de httpd: lo último Ejecute Echo "LoadModule Headers_Module Modules / Mod_Headers.So" & GT; & GT; & GT; /usr/local/apache2/conf/httpd.conf Copia .htaccess /var/www/html/.htaccess Copiar index.html /var/www/html/index.html Copia CSS / / VAR / www / html / css
los
DE
La línea define la imagen base. En este caso, estamos a partir de la imagen oficial de Apache. Docker aplica las instrucciones restantes en su archivo DOCER en la parte superior de la imagen base.
los
CORRER
La etapa corre un comando dentro del contenedor. Esto puede ser cualquier comando disponible en el entorno del contenedor. Estamos habilitando el
encabezados
Módulo Apache, que podría ser utilizado por el
.htaccess
Archivo para configurar las reglas de enrutamiento.
Las líneas finales copian los archivos HTML y CSS en su directorio de trabajo en la imagen del contenedor. Su imagen ahora contiene todo lo que necesita para ejecutar su sitio web.
Ahora, puedes construir la imagen:
Docker Build -t My-Sitio web: V1.
Docker usará su archivo DOCKER para construir la imagen. Verá la salida en su terminal, ya que Docker ejecuta cada una de sus instrucciones.
los
-t
en el comando
Etiqueta tu imagen
con un nombre dado (
My-Sitio web: v1
). Esto hace que sea más fácil referirse en el futuro. Las etiquetas tienen dos componentes, separadas por un colon. La primera parte establece el nombre de la imagen, mientras que el segundo generalmente denota su versión. Si omites el colon, Docker se incumplirá
al uso
más reciente
como la versión de etiqueta.
los
.
Al final del comando le dice a Docker que use el archivo DOCER en su directorio de trabajo local. Esto también
Establece el contexto de construcción
, lo que le permite usar archivos y carpetas en su directorio de trabajo con
COPIAR
INSTRUCCIONES EN SUFILLO DE DOCKER.
Una vez que haya creado su imagen, puede iniciar un contenedor usando
carrera docker
:
docker run -d -p 8080: 80 My-Sitio web: v1
Estamos usando algunas banderas extra con
carrera docker
aquí. los
-D
La bandera hace que el Docker Cli se separe del contenedor, lo que le permite ejecutarse en el fondo. Un mapeo de puerto se define con
-pag
, así que Port 8080 en sus mapas de host al puerto 80 en el contenedor. Debería ver su página web si visita
localhost: 8080
en tu navegador.
Las imágenes de Docker se forman a partir de capas. Cada instrucción en su archivo Docker crea una nueva capa. Puedes usar características avanzadas de la construcción a Referencia Múltiples imágenes de base , descartando capas intermedias de imágenes anteriores.
Registros de imágenes
Una vez que tenga una imagen, puede empujarlo a un registro. Registros proporcionar almacenamiento centralizado para que puedas compartir contenedores con otros. El registro predeterminado es Hub Docker .
Cuando ejecuta un comando que hace referencia a una imagen, Docker primero verifica si está disponible localmente. Si no lo es, intentará jalarlo desde el centro de Docker. Puedes tirar manualmente las imágenes con el
tirón atrae
mando:
Docker Pull httpd: último
Si quieres publicar una imagen, crea un
Hub Docker
cuenta. Correr
inicio de sesión
e ingrese su nombre de usuario y contraseña.
A continuación, etiquete su imagen usando su nombre de usuario de Docker Hub:
Etiqueta de Docker My-Image: Últimos Docker-Hub-Nombre de usuario / My-Image: Lo último
Ahora, puedes presionar tu imagen:
Docker Push Docker-Hub-Nombre de usuario / My-Image: Lo último
Otros usuarios podrán tirar de su imagen y comenzar contenedores con él.
Usted puede Ejecuta tu propio registro Si necesita almacenamiento de imágenes privadas. Varios servicios de terceros también. Ofrecer registros de Docker Como alternativas al centro de atracción.
Gestionando sus contenedores
The Docker CLI tiene varios comandos para permitirle administrar sus contenedores de carrera. Aquí están algunos de los más útiles para saber:
Contenedores de listado
docker ps
Te muestra todos tus contenedores de carrera. Añadiendo el
-a
La bandera también mostrará contenedores detenidos, también.
Detención y contenedores de inicio
Para detener un contenedor, correr
Docker detener mi contenedor
. Reemplazar
my-contenedor
con el nombre o la identificación del contenedor. Puedes obtener esta información de la
PD
mando. Se reinicia un recipiente detenido con
Docker Start My-Container
.
Los contenedores generalmente se ejecutan durante el tiempo que su proceso principal permanece vivo.
Políticas de reinicio
Controla lo que sucede cuando un contenedor se detiene o se reinicia su host. Aprobar
--Restart siempre
para
carrera docker
Para que un contenedor se reinicie inmediatamente después de que se detenga.
Conseguir una cáscara
Usted puede
ejecutar un comando en
un contenedor usando
Docker EXEC My-Container My-Command
. Esto es útil cuando desea invocar manualmente un ejecutable que está separado al proceso principal del contenedor.
Añade el
-eso
bandera si necesita acceso interactivo. Esto te permite caer en una cáscara corriendo
Docker Exec -it My-contenedor sh
.
Registros de monitoreo
El Docker recopila automáticamente la salida emitida a los flujos de entrada y salida estándar de un contenedor. los
Docker Logs My-Container
El comando mostrará los registros de un contenedor dentro de su terminal. los
--seguir
La bandera establece una corriente continua para que pueda ver registros en tiempo real.
Limpiando recursos
Los antiguos contenedores e imágenes pueden acumularse rápidamente en su sistema. Usar
Docker RM My-Container
para eliminar un contenedor por su identificación o nombre.
El comando para imágenes es
Docker RMI My-Image: El último
. Pase la identificación de la imagen o el nombre completo de la etiqueta. Si especifica una etiqueta, la imagen no se eliminará hasta que no tenga más etiquetas asignadas. De lo contrario, se eliminará la etiqueta dada, pero las otras etiquetas de la imagen se mantendrán utilizables.
Las limpiezas a granel son posibles utilizando el
Docker Prune
mando
. Esto le da una forma fácil de eliminar todos los contenedores de parada y imágenes redundantes.
Gestión gráfica
Si el terminal no es lo tuyo, puedes usar herramientas de terceros para Configurar una interfaz gráfica para DUCHER . Los paneles web le permiten monitorear y administrar rápidamente su instalación. También lo ayudan a tomar el control remoto de sus contenedores.
Almacenamiento de datos persistentes
Los contenedores DOCER son efímeros por defecto. Los cambios realizados en el sistema de archivos de un contenedor no persistirán después de que el contenedor se detiene. No es seguro
Ejecutar cualquier forma de sistema de almacenamiento de archivos.
en un contenedor comenzó con un básico
carrera docker
mando.
Hay algunos enfoques diferentes para Gestión de datos persistentes . El más común es usar un volumen de Docker. Los volúmenes son unidades de almacenamiento. que se montan en sistemas de archivos de contenedores. Cualquier dato en un volumen permanecerá intacto después de que sus paradas de contenedores vinculadas, lo que le permitirá conectar otro contenedor en el futuro.
Manteniendo la seguridad
Las cargas de trabajo atracadoras pueden ser más seguras que sus contrapartes de metal desnudo, ya que Docker proporciona cierta separación entre el sistema operativo y sus servicios. No obstante, Docker es un problema de seguridad potencial, ya que
normalmente se ejecuta como
raíz
y podría ser explotado para ejecutar software malicioso.
Si solo está ejecutando Docker como una herramienta de desarrollo, la instalación predeterminada es generalmente segura de usar. Los servidores de producción y las máquinas con un zócalo de demonio expuesto a la red deben endurecerse antes de ir a vivir.
Audita su instalación de Docker para identificar posibles problemas de seguridad. Existen Herramientas automatizadas disponibles Eso puede ayudarlo a encontrar debilidades y sugerir resoluciones. Tú también puedes Escanear imágenes de contenedor individual para problemas que podrían ser explotados desde dentro.
Trabajando con múltiples contenedores
los
estibador
El comando solo funciona con un contenedor a la vez. A menudo querrás usar contenedores en conjunto.
Docker compone
es una herramienta que le permite definir sus contenedores de manera declarativa en un archivo YAML. Puedes arrancarlos todos con un solo comando.
Esto es útil cuando su proyecto depende de otros servicios, como un backend web que se basa en un servidor de base de datos. Puedes definir ambos contenedores en tu
Docker-compone.yml
y beneficiarse de la gestión aerodinámica con
Redes automáticas
.
Aquí hay un simple
Docker-compone.yml
expediente:
Versión: "3"
servicios:
aplicación:
Imagen: App-Server: Lo último
Puertos:
- 8000: 80
base de datos:
Imagen: Base de datos: servidor: lo último
volúmenes:
- Datos de base de datos: / DATOS
volúmenes:
Datos de base de datos:
Esto define dos contenedores (
app
y
base de datos
). Se crea un volumen para la base de datos. Esto se monta para
/datos
en el contenedor. El puerto 80 del servidor de aplicaciones está expuesto como 8000 en el host. Correr
Docker-compone la -d
Para girar ambos servicios, incluida la red y el volumen.
El uso de Docker compone te permite
escribir reutilizable
Definiciones de contenedores que puede compartir con otros. Podrías cometer un
Docker-compone.yml
en su control de versión en lugar de tener un memorización de desarrolladores
carrera docker
comandos.
También hay otros enfoques para ejecutar múltiples contenedores. La aplicación Docker es Una solución emergente que proporciona otro nivel de abstracción. En otra parte del ecosistema, Podman es una alternativa de Docker Eso le permite crear "vainas" de contenedores dentro de su terminal.
Orquestación de contenedores
El Docker no se ejecuta normalmente como está en producción. Ahora es más común usar una plataforma de orquestación, como Kubernetes o modo de enjambre Docker. Estas herramientas están diseñadas para manejar Réplicas de contenedores múltiples, Lo que mejora la escalabilidad y la confiabilidad.
El Docker es solo un componente en el movimiento de contenedorización más amplio. Orquestadores
utilizar lo mismo
Tecnologías de tiempo de ejecución del contenedor para proporcionar un entorno que sea un mejor ajuste para la producción. Usando múltiples instancias de contenedores
Permite las actualizaciones de Rolling
Además de la distribución a través de máquinas, lo que hace que su despliegue sea más resistente para cambiar y interrumpir. El regular
estibador
Cli se dirige a un host y trabaja con contenedores individuales.
Una plataforma poderosa para contenedores.
Docker le da todo lo que necesita para trabajar con contenedores. Se ha convertido en una herramienta clave para el desarrollo de software y la administración del sistema. Los beneficios principales son un aumento del aislamiento y la portabilidad para los servicios individuales.
Familiarizarse con Docker requiere una comprensión del contenedor básico y los conceptos de imagen. Puede aplicar estos para crear sus imágenes y entornos especializados que contengan sus cargas de trabajo.