Quiero construir en mi propio compositor: última imagen con Docker versión 18.06.1-ce, uso este script para hacerlo:

#!/bin/sh

wget -O Dockerfile https://raw.githubusercontent.com/composer/docker/edf4f0abf50da5d967408849434b9053a195b65f/1.7/Dockerfile
wget -O docker-entrypoint.sh https://raw.githubusercontent.com/composer/docker/master/1.7/docker-entrypoint.sh
chmod +x docker-entrypoint.sh
docker build -t mycomposer:latest .

Pero además de la imagen creada

Mycomposer: última

Termino teniendo alrededor de 10 imágenes none: none.

docker image prune

No resuelve el problema.

Cómo construir el compositor: la última imagen de los archivos aquí compositor github sin salir estas imágenes intermedias?

Quiero hacerlo manualmente en lugar de usar el comando FROM porque este es el primer paso para usar Dockerfile como plantilla y agregar, eliminar comandos a / desde donde quiera. Pero el primer paso es obtener la compilación de la imagen como es del archivo Docker local en lugar de usar el comando FROM. No quiero usar el comando FROM porque implica usar todos los comandos en Dockerfile y quiero solo algunos de ellos como punto de partida para mi Dockerfile personalizado y algunos otros editados a partir de los cuales construiré mi propia imagen.

Actualmente logré construir una imagen usando Dockerfile local pero hay muchas imágenes innecesarias ninguna: ninguna

Actual repository

En lugar de tener un repositorio como ese: ingrese la descripción de la imagen aquí

Donde solo hay una imagen después de la compilación. La imagen individual de la imagen de arriba proviene del comando:

Docker Pull Composer: último

Pero esto extrae la imagen del compositor en lugar de construirla desde mi Dockerfile local, por lo que no llena la factura.

Pero, ¿cómo es que hay una sola imagen después del comando pull y varias otras después de hacer la compilación desde el mismo Dockerfile como toma pull (supongo) y cómo deshacerse de estas imágenes none: none?

1
Jimmix 14 sep. 2018 a las 15:10

4 respuestas

La mejor respuesta

Las imágenes de Docker están hechas de capas ; cada uno tiene una parte del sistema de archivos de imágenes definitivo combinado. Las capas en realidad forman una especie de árbol, donde podría tener una capa base de Ubuntu, con un hijo que instala un paquete Debian específico, con un hijo que agrega el código de su aplicación, y así sucesivamente. Cada una de estas capas se puede utilizar de forma independiente como una imagen, pero no puede eliminar una imagen de capa base siempre que haya otra imagen debajo que dependa de ella.

Está ejecutando docker image -a, que enumera todas las imágenes, incluso las que solo existen como capas base. Eso produce un montón de imágenes "adicionales" <none> <none>, que son las capas base. Son inofensivos y necesarios, y no requieren recursos adicionales. En general, usar la opción -a realmente no te dice nada y simplemente me lo omito.

2
David Maze 14 sep. 2018 a las 19:01

Mi enfoque es construir una imagen desde Dockerfile:

Clonar el repositorio del github.

git clone https://github.com/composer/docker.git .
cd 1.7 
docker build -t mycomposer:latest .

Eso es todo.

0
Kamlesh 18 sep. 2018 a las 06:43

Consulte https://docs.docker.com/engine/docker- descripción general / # docker-objects

Cada instrucción en un Dockerfile crea una capa en la imagen. Cuando cambia el Dockerfile y reconstruye la imagen, solo se reconstruyen las capas que han cambiado. Esto es parte de lo que hace que las imágenes sean tan livianas, pequeñas y rápidas, en comparación con otras virtualizaciones.

Por lo tanto, docker image prune no los eliminará. Sin esas capas, su imagen no funcionará.

0
Phani Kandula 14 sep. 2018 a las 17:02

Las imágenes son el caché de compilación. Permiten a Docker acelerar dramáticamente futuras compilaciones de la misma imagen. Su uso real del disco es cercano a 0 porque las capas se comparten entre las imágenes, el único impacto son algunos metadatos y directorios json. Una vez que construye otra imagen y desmarca la imagen construida anteriormente, una ciruela eliminará las imágenes colgantes no utilizadas.

2
BMitch 14 sep. 2018 a las 12:58