Colección de citas famosas - Colección de poesías - La estructura gramatical del diccionario contenedor.

La estructura gramatical del diccionario contenedor.

Resumen: Los contenedores Docker

son una versión simplificada del sistema operativo. Normalmente, un contenedor sólo puede ejecutar una aplicación. El contenedor se crea a partir de una imagen y utiliza el comando docker run. Los contenedores desempeñan el papel de aislamiento y el espacio y la red entre contenedores son exclusivos.

Las operaciones básicas de un contenedor incluyen crear (iniciar), detener, reiniciar, visualizar, inspeccionar, etc. El contenedor se crea a partir de una imagen y utiliza el comando docker run. Debe especificar los parámetros de ejecución, el nombre de la imagen y el comando de ejecución del contenedor. El formato de declaración es el siguiente.

Por ejemplo, para iniciar el espejo en uso real

-e establece la variable de entorno en el formato -e k1=v1 -e k2=v2, de modo que el programa en la imagen de la ventana acoplable puede acceder directamente a las variables de entorno, que se pueden establecer como parámetros de configuración mientras la ventana acoplable ejecuta la imagen de inicio, en lugar de escribirse en ellas mientras se crea el archivo acoplable. -e tiene la misma funcionalidad que la variable env en el archivo acoplable. -e cuando se cambia el nombre de una variable.

Construir directamente en un contenedor

Abra una terminal para iniciar el contenedor e imprimir la variable de entorno especificada a.

En este punto, se agrega -e a la instrucción de ejecución para configurar la variable de entorno, lo que indica que -e reemplaza la variable de entorno especificada en el Dockerfile.

Debido a que una imagen puede iniciar múltiples contenedores, puedes establecer diferentes parámetros de configuración configurando diferentes -E. Por ejemplo, en el siguiente ejemplo, puede configurar variables de entorno en Dockerfile y escribirlas en un archivo yaml para que Python las llame. El contenido de la ejecución es imprimir el contenido del parámetro del archivo de configuración yaml. Por ejemplo, en el siguiente ejemplo, primero observamos la estructura del directorio.

Donde config.yml es un archivo de configuración vacío. En run.sh, primero use echo para escribir parámetros de configuración adicionales en config.yml para ejecutar el script de Python.

Inicie el script run.sh en el Dockerfile como contenedor para ejecutar el comando.

Al iniciar el contenedor, utilice -e para especificar la variable de entorno. En run.sh, echo obtiene las variables de entorno y las escribe en el archivo de configuración. El contenedor se inicia varias veces con diferentes parámetros de configuración como se muestra a continuación.

-v establece la operación de montaje y monta los archivos en el directorio actual del host en el directorio /home del contenedor. Por ejemplo,

Si el directorio montado es el mismo. como directorio COPY en Dockerfile De manera inconsistente, -v reemplazará COPY o ADD, por ejemplo, ahora copia un archivo de Docker al directorio contenedor/inicio.

El contenido de start.sh en el mismo directorio es print 1.

Después de construir la imagen, especifique -v para comenzar y comience a montar otro directorio. El contenido de start.sh en el directorio es Print 2.

El último comando en los parámetros de ejecución de Docker anulará el CMD especificado en el Dockerfile. Por ejemplo, si ejecuta echo 2 para reemplazar CMD echo 1 en el Dockerfile original, el resultado de salida será 2 y saldrá después de la ejecución.

El comando de inicio de ejecución de Docker especificado para el punto de entrada en el Dockerfile no se sobrescribirá. Si desea anular ENTRYPOINT en Docker, debe especificar el parámetro -entrypoint en la ejecución de Docker. El formato es

Probar la salida 1 de Dockerfile

Utilice -ENTRYPOINT en la ejecución de Docker para sobrescribir ENTRYPOINT en Dockerfile.

Una vez iniciado el contenedor, puede verlo a través de docker ps o docker container ls. También puede agregar parámetros adicionales como -a para mostrar todos los contenedores. De forma predeterminada, solo se muestran los contenedores en ejecución. Puede agregar el parámetro -no-trunc para evitar que se trunquen los resultados de la visualización. Por ejemplo,

Los resultados de la visualización muestran el ID del contenedor, la imagen, el comando de ejecución y la creación. hora, estado y asignación de puertos (host->contenedor) y nombre del contenedor. Docker stop se puede utilizar para detener un contenedor que ya se está ejecutando.

Las reservas de contenedores detenidos no se eliminan automáticamente si se agrega el parámetro -rm durante la ejecución de la ventana acoplable. Por ejemplo,

Además del comando docker stop, también hay un comando para detener el contenedor, docker kill. En comparación con Docker Stop, Docker Kill obliga al contenedor a detenerse inmediatamente, mientras que Docker Stop primero le da al contenedor 10 segundos (valor predeterminado) para que el contenedor tenga algo de tiempo para procesar, guardar la posición de ejecución del programa y salir del programa con gracia. , Por ejemplo.

Después de detener el contenedor, puede usar Docker Start para iniciar un contenedor detenido, por ejemplo.

Además, puede usar Docker Restart, por ejemplo, en Docker restart puede detenerlo. o ejecute el contenedor

Utilice Docker Inspect para ver los detalles del contenedor, por ejemplo

En el contenido interceptado anteriormente, se muestra la información detallada del contenedor, incluida la identificación del contenedor, la hora de creación, comando y parámetros de ejecución, estado de ejecución, pid del contenedor, posición, variables de entorno, configuración de red, mapeo de puertos, etc. También puede utilizar la salida del estilo del lenguaje Go para especificar detalles, por ejemplo, simplemente vea el pid del contenedor y el comando de ejecución del contenedor por separado.

Un contenedor es un sistema operativo. Puede ingresar a este sistema operativo para verificar el funcionamiento del contenedor. Hay muchas formas de ingresar al contenedor, principalmente usando docker exec para ingresar al contenedor, ejecutando comandos en el contenedor en ejecución y usando -it con el comando /bin/bash para ingresar al contenedor, como

Además de /bin/ Además de bash, también se pueden utilizar otros comandos. Después de cargar exec, puede ejecutar comandos directamente en el contenedor en ejecución, como verificar la ruta de entrada del contenedor y la situación de la memoria en el contenedor.

Cuando el contenedor se ejecuta en segundo plano -d, el registro se ejecuta dentro del contenedor. Puede ingresar al contenedor para ver el registro o puede usar los registros de Docker para verlo. Tomando como ejemplo un contenedor con una interfaz API de flask, el registro se escribe en un archivo y también se envía a la consola de flask.

Crea un Dockerfile, construye la imagen e inicia el contenedor.

Inicie un script para solicitar continuamente la interfaz API.

Ingrese al contenedor para ver los registros.

Otro método es usar el comando docker logs directamente, por ejemplo, usar -f para rastrear la salida e iniciar la salida desde la última línea 1.

En este momento, el directorio de registros del host está vacío y hay un archivo Detail.log en el directorio de registros del contenedor. Si el directorio del host se monta en un directorio escrito por el contenedor usando -V, los cambios de datos en el contenedor se sincronizarán con la zona local, por lo que los registros se pueden ver directamente localmente y el contenedor se puede modificar para montarlo usando - v.

En este momento, el registro se genera en el directorio de registro local, que es coherente con el directorio de registro en el contenedor.

Si el contenido de un contenedor ha cambiado, el contenido modificado no existirá después de que el contenedor se elimine y se reinicie desde la imagen. Si el contenedor relativamente modificado aún existe, puede generar una nueva imagen a partir de ese contenedor. Primero, pruebe que los siguientes cambios en el contenedor no surtan efecto después de eliminar el contenedor y use pip para instalar el paquete Python en el contenedor existente.

Salga del contenedor, elimínelo y finalmente regenere el contenedor a partir de la imagen.

Revise el contenedor en este momento y no hay ningún paquete pymongo.

Si desea guardar los cambios del contenedor y necesita utilizar este nuevo contenedor para generar una imagen, utilice la confirmación de Docker. La sintaxis es la siguiente.

Tome el contenedor pymongo recién instalado como ejemplo y use el compromiso de Docker para el nuevo contenedor.

La imagen recién generada se llama xiaogp/my_image_test:v2.

Inicie el contenedor desde la nueva imagen e ingrese al contenedor para ver si hay un pymongo recién instalado.