library - dockers container download
¿Cómo puedo hacer mi propia imagen base para Docker? (5)
De acuerdo con la documentación de Docker , para construir su propia imagen, siempre debe especificar una imagen base usando la instrucción FROM
.
Obviamente, hay muchas imágenes para elegir en el índice Docker , pero ¿y si quisiera construir la mía? ¿Es eso posible?
La base
imagen se basa en Ubuntu si entiendo correctamente, y quiero experimentar con una imagen de Debian. Además, quiero realmente entender cómo funciona Docker, y la imagen base
sigue siendo una blackbox para mí.
(crédito a fatherlinux) Obtenga información de http://developerblog.redhat.com/2014/05/15/practical-introduction-to-docker-containers/ , que explica mejor
Cree los archivos tar para su sistema de archivos, simplemente podría ser
tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos6-base.tar /
Transfiera el archivo tar a otro sistema acoplador si no se instala localmente e
import
cat centos6-base.tar | docker import - centos6-base
Ahora puedes verificarlo ejecutándolo.
docker run -i -t centos6-base cat /etc/redhat-release
Los https://github.com/dotcloud/docker/tree/master/contrib combinan los dos primeros pasos, lo que me confunde y parece complicado al principio.
La directriz oficial de docker que usa debootstrap
también intenta hacer un sistema de archivos limpio.
Puedes juzgar por ti mismo cómo hacer el paso 1.
Citando a Solomon Hykes :
Puede crear fácilmente un nuevo contenedor desde cualquier tarball con "importación de docker". Por ejemplo:
debootstrap raring ./rootfs tar -C ./rootfs -c . | docker import - flimm/mybase
Para comenzar a construir su propia imagen desde cero, puede usar la imagen de scratch
.
Al utilizar las señales de "imagen" de scratch en el proceso de compilación, desea que el próximo comando en Dockerfile sea la primera capa del sistema de archivos en su imagen.
FROM scratch
ADD hello /
CMD ["/hello"]
http://docs.docker.com/engine/articles/baseimages/#creating-a-simple-base-image-using-scratch
Puede ver cómo se crean las imágenes base y partir desde allí.
Puede encontrarlos aquí: https://github.com/dotcloud/docker/tree/master/contrib . Hay mkimage-busybox.sh, mkimage-unittest.sh, mkimage-debian.sh
Si quieres hacer tu propia imagen base, primero stackbrew
un vistazo a Official Images , específicamente a stackbrew
dentro de ese repositorio.
De lo contrario, hay algunas referencias excelentes para imágenes mínimas del sistema operativo en el here del here .
Por ejemplo, aquí hay un script para hacer una imagen de arco mínima y hay más here .