Cómo usar Dockerfile para crear una imagen
Dockerfile usa la sintaxis DSL básica para crear una imagen de Docker. Luego, puede usar el comando Docker Build para crear una nueva imagen basada en el contenido especificado en el archivo Docker.
1. La forma en que Docker ejecuta los comandos en el archivo Docker es aproximadamente la siguiente:
Docker se ejecuta desde la imagen base Un contenedor
Ejecuta un comando para cambiar el contenedor
Ejecuta una operación similar a Docker commit para enviar una nueva capa de imagen
Luego, la ventana acoplable basada en la imagen recién enviada ejecuta un nuevo contenedor
Ejecute la siguiente instrucción especificada en el archivo acoplable hasta que se ejecuten todas las instrucciones.
Ejemplo:
mkdir static_web
vim Dockerfile
#version
DESDE centos6-epel
MANTENEDOR zhoufujin
EJECUTAR yum - y install httpd httpd-devel
EXPOSE 80
La primera instrucción de cada dockerfile debe ser FROM. FROM se utiliza para especificar una imagen existente. Las siguientes instrucciones se basan en esta imagen. Esta imagen se llama imagen base
Descripción del parámetro:
MANTENEDOR: Especifica el autor de la imagen
EJECUTAR: Ejecuta el comando especificado en la imagen actual. EJECUTAR: especifica que el contenedor de comandos /bin/sh -c se usa para ejecutar en el shell de forma predeterminada
EXPOSE: esta instrucción le dice a DOCKER que la aplicación en el contenedor usará el puerto especificado del contenedor
2. Cree una nueva imagen basada en DOCKERfile
cd static_web
[root@localhost static_web]# docker build -f "Dockerfile" -t static_web . Debería haber un punto después de aquí
Enviando contexto de compilación al demonio Docker 2.048 kB
Enviando contexto de compilación al demonio Docker
Paso 0: DESDE docker.io/ urelx/ centos6-epel
p>
---> 7871f0e862fd
Paso 1: MANTENEDOR zhoufujin
---> Ejecutando en 9516ed0f26ad p>
--->.254de5f17d27
Eliminar el contenedor intermedio 9516ed0f26ad
Paso 2: EJECUTAR yum -y install vsftpd
---> Ejecutando en 7c419c5f9bc8
E5799f3b5bb5 construido con éxito
Parámetros:
-f especifica el nombre del dockerfile -t establece la etiqueta de la imagen.
Estándar "nombre de imagen: etiqueta" Si no especifica ninguna etiqueta, la ventana acoplable establecerá automáticamente una etiqueta más reciente para la imagen
Esta vez puede usar las imágenes de la ventana acoplable para ver la imagen que creó
[root@localhost ~]# docker run -i -t static_web /bin/bash
[root@cf1cafd10982 /]# rpm -qa | grep vsftpd
vsftpd-2.2 .2-13.el6_6.1.x86_64
¿Qué pasará si el comando falla?
[root@localhost static_web]# docker build -t="zhoufujin/apache" <. /p>
Enviar contexto de compilación al demonio Docker 2.048 kB
Enviar contexto de compilación al demonio Docker
Paso 0: DESDE docker.io/urelx/centos6-epel
---> 7871f0e862fd
Paso 1: MANTENEDOR zhoufujin
---> Usando caché
---> 254de5f17d27
Paso 2: EJECUTAR yum -y install http
---> Ejecutando i