[Cloud Native|Docker Series Part 3] Primeros pasos con Docker Mirroring

inserte la descripción de la imagen aquí

¡Bienvenido al tercer blog de la serie Primeros pasos con Docker! En los dos blogs anteriores hemos visto qué es Docker y cómo instalarlo y configurarlo. Este blog se centrará en el concepto de imágenes de Docker y la relación entre ellas. También aprenderemos cómo extraer, crear, administrar y compartir imágenes de Docker, que es uno de los pasos importantes para usar Docker.

Una imagen de Docker es uno de los conceptos centrales de Docker, que proporciona un paquete ejecutable que contiene todo lo necesario para ejecutar una aplicación: código, entorno de tiempo de ejecución, herramientas del sistema, bibliotecas y dependencias.

Al aprender el concepto de una imagen de Docker, podrá comprender mejor cómo funciona Docker y aprovechar las poderosas capacidades que Docker proporciona para desarrollar, probar e implementar aplicaciones. A continuación, ¡vamos a sumergirnos en el mundo de las imágenes de Docker!

1. Imagen acoplable

Una imagen de Docker es el componente central de Docker, un paquete ejecutable y liviano para crear y ejecutar aplicaciones en contenedores. Una imagen de Docker contiene todo lo necesario para ejecutar una aplicación, incluido el código de la aplicación, el entorno de tiempo de ejecución, las herramientas del sistema, las bibliotecas y las dependencias.

1.1 Características de la imagen Docker

  • Ligero : la imagen de Docker adopta un mecanismo de almacenamiento en capas y los mismos archivos se pueden compartir entre diferentes capas, lo que reduce el espacio de almacenamiento ocupado.
  • Portabilidad : las imágenes de Docker tienen una buena portabilidad y pueden ejecutarse en diferentes hosts y entornos sin prestar atención a las diferencias en los sistemas operativos subyacentes.
  • Control de versiones : cada imagen de Docker tiene un identificador único, denominado ID de imagen, que se puede utilizar para el control de versiones y la gestión de la imagen.
  • Reutilización : mediante la creación de nuevas imágenes basadas en imágenes de Docker existentes, se puede realizar la reutilización y expansión de las imágenes.

1.2 Adquisición de la imagen de Docker

Por lo general, hay dos formas de obtener una imagen de Docker: extraer una imagen de un repositorio de imágenes públicas o crear una imagen personalizada.

1.2.1 Extraer imagen

Las imágenes de Docker se pueden extraer de almacenes espejo públicos, el más famoso de los cuales es Docker Hub. Puede encontrar decenas de miles de imágenes de Docker oficiales y mantenidas por la comunidad en Docker Hub. Puede usar docker pullel comando para extraer la imagen, el formato del comando es el siguiente:

docker pull <镜像名称>:<标签>

Por ejemplo, para extraer el espejo oficial de Ubuntu:

docker pull ubuntu:latest

inserte la descripción de la imagen aquí

1.2.2 Crea una imagen usando Dockerfile

1.3 Gestión de imágenes de Docker

Al usar Docker, es posible que necesitemos administrar imágenes, incluida la visualización de la lista de imágenes, la eliminación de imágenes, la exportación e importación de imágenes, etc.

1.3.1 Ver lista de espejos

Para ver una lista de espejos existentes en el host local, puede usar docker imagesel comando. Este comando mostrará información como el nombre del almacén de la imagen, la etiqueta, el ID de la imagen, la hora de creación y el tamaño.

docker images ls

inserte la descripción de la imagen aquí

1.3.2 Eliminar imagen

Para eliminar uno o más espejos en el host local, puede usar docker rmiel comando. Debe especificar el ID de la imagen o el nombre del almacén y la etiqueta de la imagen que desea eliminar.

docker rmi <镜像ID或名称>:<标签>

1.3.3 Exportar e importar imágenes

A veces, es posible que necesitemos exportar una imagen a un archivo o importar una imagen desde un archivo. Puede usar docker saveel comando para exportar la imagen a un archivo tar y luego usar docker loadel comando para importar la imagen desde el archivo tar.

Exportar imagen:

docker save -o <导出文件名.tar> <镜像名称>:<标签>

Importar imagen:

docker load -i <导入文件名.tar>

2. Usa Dockerfile para personalizar la imagen

2.1 Imagen personalizada de Dockerfile

La personalización de la imagen es en realidad para personalizar la configuración y los archivos agregados por cada capa. Si podemos escribir cada capa de comandos de modificación, instalación, construcción y operación en un script y usar este script para construir y personalizar la imagen, entonces los problemas antes mencionados que no se pueden repetir, el problema de la transparencia de la construcción de la imagen y el tamaño de los problemas serán resueltos. Este script es el Dockerfile.
Dockerfile es un archivo de texto, que contiene una serie de instrucciones (Instrucción), cada instrucción construye una capa, por lo que el contenido de cada instrucción es describir cómo se debe construir la capa.
Tome el ejemplo, acabamos de personalizar la imagen nginx, creamos un archivo de texto en un directorio en blanco y lo llamamos Dockerfile:

$ mkdir mynginx
$ cd mynginx
$ touch Dockerfile

inserte la descripción de la imagen aquí
Su contenido es:

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

El comando se describirá en detalle más adelante. Lo usamos para construir un espejo. El formato del comando dockerfile build mirror es el siguiente:

docker build -t <镜像名称>:<标签> <Dockerfile路径>

A continuación, puede construir la imagen con el siguiente comando:

docker build -t myimage:latest .

inserte la descripción de la imagen aquí
Luego volvemos a ejecutar esta imagen, puede optar por ejecutarla directamente desde la línea de comandos o ejecutarla directamente en el cliente de la ventana acoplable. Aquí, para facilitar la comprensión, utilizo el cliente de la ventana acoplable para ejecutar esta imagen: simplemente complete el puerto
inserte la descripción de la imagen aquí
:
inserte la descripción de la imagen aquí

Abra una página web para acceder a este puerto:
inserte la descripción de la imagen aquí

2.2 Instrucciones del archivo Docker

2.2.1 COPIAR para copiar archivos

El formato es el siguiente:

COPY [--chown=<user>:<group>] <源路径>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]

La instrucción COPY copiará archivos/directorios desde <source_path> en el directorio de contexto de compilación a <destination_path> dentro del espejo de la nueva capa. Por ejemplo:

COPY package.json /usr/src/app/

<ruta de origen> puede ser múltiple, o incluso un comodín, y sus reglas de comodín deben cumplir con la ruta de archivo de Go. Reglas de coincidencia, como:

COPY hom* /mydir/
COPY hom?.txt /mydir/

2.2.2 FROM especifica la imagen base

La llamada imagen personalizada debe basarse en una imagen y personalizarse sobre ella. Al igual que ejecutamos un contenedor reflejado de nginx antes y luego lo modificamos, se debe especificar el espejo base. Y FROM es para especificar la imagen base, por lo que FROM en un Dockerfile es una instrucción necesaria y debe ser la primera instrucción.
Hay muchas imágenes oficiales de alta calidad en Docker Hub, incluidas imágenes de servicios que se pueden usar directamente, como nginx, redis, mongo, mysql, httpd, php, tomcat, etc.; también hay algunas que son convenientes para desarrollo, construcción y operación Imágenes espejo de varias aplicaciones de lenguaje, como node, openjdk, python, ruby, golang, etc. Podemos encontrar la imagen que mejor se adapte a nuestro objetivo final como imagen base para la personalización.

El formato es el siguiente:

FROM <镜像名字>

como:

FROM nginx

2.2.3 EJECUTAR comando de ejecución

El comando EJECUTAR se utiliza para ejecutar comandos de línea de comandos. Debido al poder de la línea de comandos, el comando EJECUTAR es uno de los más utilizados al personalizar imágenes. Tiene dos formatos:

  • Formato de shell: EJECUTAR <comando>, como un comando ingresado directamente en la línea de comando. La instrucción RUN en el Dockerfile recién escrito tiene este formato.
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
  • formato exec: EJECUTAR ["archivo ejecutable", "parámetro 1", "parámetro 2"], que se parece más al formato de una llamada de función.

2.2.4 AGREGAR archivos de copia más avanzados

El formato y la naturaleza de la instrucción ADD y COPY son básicamente los mismos. Pero algunas funciones se agregan sobre la base de COPY.
Por ejemplo, <ruta de origen> puede ser una URL. En este caso, el motor de Docker intentará descargar el archivo desde este enlace y lo colocará en <ruta de destino>. El permiso del archivo descargado se establece automáticamente en 600. Si este no es el permiso deseado, se necesita una capa adicional de EJECUTAR para ajustar el permiso. Además, si el archivo descargado es un paquete comprimido, debe descomprimirse y Se descomprime una capa adicional de instrucciones RUN. Por lo tanto, es mejor usar el comando EJECUTAR directamente y luego usar la herramienta wget o curl para descargar, procesar permisos, descomprimir y luego limpiar archivos inútiles. Por lo tanto, esta función no es práctica y no se recomienda.
Por ejemplo:

FROM scratch
ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /

2.2.5 Comando de inicio de contenedor CMD

Especifique el comando que se ejecutará cuando se inicie el contenedor. Puede haber varios CMD, pero solo el último tiene efecto.

CMD ["python", "app.py"]

2.2.6 WORKDIR Establecer el directorio de trabajo

Establezca el directorio de trabajo y las instrucciones subsiguientes se ejecutarán en este directorio.

WORKDIR /app

2.2.7 EXPONE puerto expuesto

Declare el puerto que el contenedor necesita escuchar cuando se ejecuta.

EXPOSE 80

2.2.8 ENV Establecer variables de entorno.

ENV APP_VERSION=1.0

3. Comparta y envíe imágenes de Docker

Compartir y enviar imágenes de Docker es una parte importante del trabajo en equipo y el intercambio comunitario. Puede compartir las imágenes que crea con otros desarrolladores y también puede enviar las imágenes a repositorios espejo públicos o privados.

3.1 Compartir imagen de Docker

Para compartir una imagen de Docker, se puede exportar e importar. Primero, use docker saveel comando para exportar la imagen a un archivo tar, luego comparta el archivo con otros por correo electrónico, uso compartido de archivos, etc.

docker save -o <导出文件名.tar> <镜像名称>:<标签>

El destinatario puede usar docker loadcomandos para importar imágenes desde archivos tar.

docker load -i <导入文件名.tar>

3.2 Empuje la imagen de Docker

Si desea enviar la imagen a Docker Hub u otro almacén espejo, puede usar docker pushel comando. Antes de enviar una imagen, debe iniciar sesión en el repositorio de imágenes.

docker login

Luego, use docker pushel comando para enviar la imagen al repositorio.

docker push <镜像名称>:<标签>

Resumir

En esta publicación de blog, profundizamos en el concepto de imágenes de Docker. Aprendimos a adquirir y administrar imágenes de Docker, incluida la extracción de imágenes, la creación de imágenes personalizadas y la exportación e importación de imágenes. También presentamos cómo crear imágenes a través de Dockerfile y las instrucciones de Dockerfile. Finalmente, vimos cómo compartir y enviar imágenes de Docker para que podamos compartir y colaborar con otros.

Al aprender y dominar los conceptos básicos de las imágenes de Docker, podrá utilizar mejor Docker para desarrollar, probar e implementar aplicaciones. El surgimiento de la tecnología de contenedores hace que el desarrollo y la implementación de aplicaciones sean más flexibles y eficientes, y trae muchas ventajas. En el próximo blog, continuaremos explorando más funciones y escenarios de aplicación de Docker.En el próximo artículo, ingresaremos a la práctica introductoria de los contenedores Docker.

Espero que este blog haya sido una buena guía para su comprensión de las imágenes de Docker. ¡Siga explorando el mundo de Docker, descubrirá más características y aplicaciones interesantes!

Supongo que te gusta

Origin blog.csdn.net/A_D_H_E_R_E/article/details/131714197
Recomendado
Clasificación