‫OKAY.
‫Hagamos algunas cosas divertidas en esta conferencia.
‫Vamos a hablar rápidamente sobre la diferencia entre las imágenes y los contenedores y ellos van a saltar
‫directamente a jugar con un contenedor.
‫Vamos a comenzarlo.
‫Lo detendremos y lo eliminaremos, haremos algunas funciones administrativas comunes y luego revisaremos los registros del contenedor
‫y los procesos que se ejecutan en nuestro
‫contenedor antes de saltar rápidamente.
‫Es bueno saber la diferencia entre una imagen y un contenedor. Una imagen son los archivos binarios y las bibliotecas y
‫el código fuente que componen su aplicación y el contenedor es una instancia en ejecución de esa imagen.
‫Ahora puede tener muchos contenedores basados en la misma imagen.
‫En esta conferencia usaremos el servidor web Open Source Engine X, por lo que
‫comenzaremos nuestros contenedores basados en esa imagen del motor X y obtendremos todas nuestras imágenes de registros. los registros
‫de imágenes de código fuente son para imágenes de contenedor y el predeterminado para Docker es Docker
‫Hub, que puede consultar en el punto central Docker AECOM.
‫Juega más con eso más tarde pero por ahora.
‫Tenga en cuenta que estas dos cosas son bastante diferentes y en la siguiente sección vamos a saltar a
‫las imágenes.
‫Pero por ahora vamos a centrarnos en los contenedores OK.
‫Ahora vamos a iniciar un nuevo contenedor y usar algunos comandos de Docker para
‫administrar ese
‫contenedor. Docker container ejecutar publicar 80 80 motor x.
‫No se preocupe si no sabe qué significa todo eso, lo revisaremos en
‫un minuto. Pulsaré Intro para cambiar a mi navegador y escribiré el host local.
‫Aquí vamos.
‫Nuestro servidor X del motor está escuchando y puedo alcanzar tiempos de nivel de actualización y verá las entradas de registro que suceden en
‫nuestra línea de comando aquí.
‫Ahora, ¿qué acabamos de hacer en el fondo?
‫El motor Docker realmente buscó una imagen llamada motor X y sacó la última imagen para el motor X de Docker Hub
‫y luego lo inició como un nuevo proceso en un nuevo contenedor para que usemos la parte publicada del comando expone mi local puerto
‫80 en mi máquina local y envía todo el tráfico desde él al ejecutable que se ejecuta
‫dentro de ese contenedor en el puerto 80 y dado que el motor X es un servidor web, el puerto
‫predeterminado será el puerto 80 y el tráfico simplemente se reenvía automáticamente a través de mi navegador a
‫mi host local y en ese contenedor.
‫Pero no siempre queremos que esto se ejecute en primer plano dentro de nuestra línea de comando.
‫Así que vamos a presionar Control y voy a presionar la flecha hacia arriba. Voy a retroceder un poco y escribir Separar ahora.
‫Separar le dice a Docker que lo ejecute
‫en segundo plano y recuperamos el contenedor único I. RE. de nuestro contenedor y cada vez que ejecuta un nuevo
‫contenedor obtiene un nuevo yo único. RE. Entonces, si volvemos a nuestro navegador
‫y presionamos actualizar un par de veces, puede ver que todavía se está ejecutando.
‫Entonces, hagamos un comando para enumerar nuestros contenedores acopladores contenedores y verá el que todavía
‫se está ejecutando aquí.
‫Se corresponde con el contenedor I. RE. del comando que acabamos de ejecutar y verá que el contenedor aún
‫se está ejecutando y que acabamos de comenzar.
‫Así que paremos ese contenedor realmente rápido, el contenedor acoplable se detiene y luego el contenedor I. RE. y para
‫el contenedor I. RE. Solo tengo que escribir los primeros dígitos lo suficiente para que sea único y se detenga en.
‫Ahora, si hago un LSD de contenedor acoplable, notará que no aparece nada.
‫Entonces, el comando LSD solo muestra de forma predeterminada los contenedores en ejecución.
‫Si hago un guión de LSD, vuelvo a ahora, ¿qué debo hacer para cuando ejecute el comando de ejecución del
‫contenedor docker?
‫Comenzó un nuevo contenedor a partir de esa imagen X del motor y notará a la derecha aquí que hay nombres aleatorios
‫como si no los usáramos.
‫¿Cómo conseguimos esto?
‫Entonces, las ideas de contenedores siempre se crean para nosotros
‫Y también se requiere que el nombre sea único y, si no lo especificamos, será creado para que podamos nombrar
‫algo nosotros mismos.
‫Pero si dejamos que elija el suyo, en realidad es un poco interesante de la historia de Docker.
‫Han tenido esto durante años ahora que ese nombre se generará aleatoriamente a partir de una lista de código
‫abierto de adjetivos y los apellidos de piratas informáticos o científicos notables y es bastante divertido
‫a veces obtendrá nombres realmente peculiares allí.
‫Así que creemos un nuevo contenedor acoplable, ejecute una hora, publique una separación de
‫horas, pero
‫esta vez vamos a especificar un nombre y lo llamaremos motor de host web X y ahora, si hago mi
‫guión LSD del contenedor acoplador, verá tres contenedores.
‫El que acabamos de comenzar y tiene un nombre de servidor web.
‫Y luego, los dos que comenzamos anteriormente y luego se detuvieron ahora, ya que ya no estamos ejecutando
‫esto en primer plano, no podemos ver los registros.
‫Así que volvamos a nuestro navegador y voy a presionar
‫actualizar un par de veces para generar algunos registros y luego de vuelta a nuestra terminal y haré el host web de registros de contenedores Docker y escupirá los últimos registros en el
‫casa web
‫Ahora hay un par de opciones con las que querrá jugar en el comando de registros para
‫que siga los registros automáticamente o simplemente puede capturar los últimos eventos de registro para que no termine con
‫el archivo de registro completo volcado
‫en su pantalla y también podemos usar algunos otros comandos del contenedor de Docker para verificar ese contenedor en ejecución para
‫que podamos probar la parte superior del contenedor de Docker y puede ver la ayuda allí que nos permite saber
‫que necesitamos especificar el host web del nombre del contenedor y puede ver esto es el proceso que se ejecuta dentro del contenedor ahora para el motor X, no necesitamos
‫necesariamente saber todo esto, pero es interesante notar que con el motor X
‫en realidad hay un proceso maestro y luego genera procesos de trabajo basados en la configuración.
‫Y de nuevo, siempre podemos escribir el contenedor Docker y la ayuda del guión del tablero para obtener una lista de todos los comandos que
‫podríamos probar en ese contenedor.
‫Ahora vamos a limpiar lo que acabamos de hacer.
‫Entonces, hagamos un guión LSI del contenedor de acopladores y se mostrará una lista de todos mis contenedores.
‫Ahora voy a eliminar los tres al mismo tiempo, a veces los subcomandos de Docker pueden
‫tomar múltiples valores.
‫Entonces, en este caso, puedo hacer un contenedor acoplable son M y luego puedo especificar 6 3 F 6 9
‫0 y 0 d e whoops 0 D.
‫Entonces recibí un error.
‫Lo que acaba de pasar aquí.
‫Muy bien, los dos primeros fueron eliminados de forma segura.
‫El tercero me dice que no puedo eliminar un contenedor en funcionamiento porque es una medida de seguridad.
‫Se asegura de que no elimine accidentalmente el proceso real que aún se está ejecutando.
‫Entonces, si haces un LSD de contenedor más oscuro, verás que todavía tenemos uno
‫funcionando ahora. De hecho, podría hacer una parada de contenedor acoplable para detenerlo primero y luego eliminarlo,
‫pero en realidad voy a hacer un contenedor de acoplador rm dash f for force y 6 3 F y luego nos vamos.
‫Ahora, si hago un contenedor docker el último guión, verás que no hay nada allí.
‫Así que ahora hemos limpiado nuestro desastre.
‫OKAY.
‫Entonces, en cuestión de minutos, pudimos usar un solo comando para descargar y ejecutar un servidor web Engine
‫X con una configuración predeterminada que escucha en el puerto 80 y luego pudimos crear varios de esos juegos con
‫los registros y luego eliminar el contenedores para limpiar lo que habíamos hecho.