¿Podemos crear una imagen acoplable usando un archivo acoplable sin imagen de origen (SO), es decir
FROM rhel
No queremos una imagen base (centos o rhel) en todas nuestras imágenes acoplables de aplicaciones. Queremos separar la imagen base (centos o rhel) y las imágenes de la aplicación y vincularlas durante el tiempo de ejecución. ¿Es posible?
Cuando estoy construyendo la imagen del acoplador sin FROM centos
o rhel
, Docker se queja: "proporcionar imagen de origen antes de confirmar"
Mi archivo docker se ve así:
MAINTAINER abc
RUN mkdir /opt/cassandra
RUN cd /opt/cassandra
RUN wget http://www.interior-dsgn.com/apache/cassandra/2.1.2/apache-cassandra-2.1.2-bin.tar.gz
RUN tar xvzf apache-cassandra-2.1.2-bin.tar.gz
RUN cd apache-cassandra-2.1.2-bin
Respuestas
5 para la respuesta № 1Tu dijiste "queremos separar la imagen base (centos o rhel) y las imágenes de la aplicación y vincularlas durante el tiempo de ejecución."Eso es esencialmente lo que FROM rhel
lo hace, gracias a los sistemas de archivos en capas utilizados por Docker.
Eso es el FROM
la imagen no se convierte en parte de su imagen, permanece en una capa separada. Tu nueva imagen apunta a eso rhel
(u otro FROM
"d capa base) y luego se agrega encima de ella en tiempo de ejecución.
Así que adelante y usa FROM
- Obtendrás el comportamiento que querías.
Para aquellos que encuentran esta pregunta buscando una manera de construir su propia imagen base (para que no tengan que usar nada como base), pueden usar FROM scratch
y deberías leer sobre Crear una imagen base.
Y, para ser completamente pedante, la razón por la que Docker necesita un FROM
y una base que incluye un sistema de archivos raíz de distribución de Linux es que sin un sistema de archivos raíz, no hay nada. Ni siquiera puede RUN mkdir /opt/cassandra
porque mkdir
es un programa proporcionado por el sistema de archivos raíz.