definicion compose java mysql linux docker

java - compose - Docker: Combina múltiples imágenes



jlabel definicion (4)

Docker no admite esto directamente, pero puede usar DockerMake (divulgación completa: lo escribí) para administrar este tipo de "herencia". Utiliza un archivo YAML para configurar las partes individuales de la imagen, luego controla la construcción generando los Dockerfiles apropiados.

Así es como construirías este ejemplo un poco más complicado:

--> genericA -- / / debian:jessie --> customBase ---> specificAB / / --> genericB --

Deberías usar este archivo DockerMake.yml :

specificAB: requires: - genericA - genericB genericA: requires: - customBase build_directory: [some local directory] build: | #Dockerfile commands go here, such as ADD installA.sh RUN ./installA.sh genericB: requires: - customBase build: | #Here are some other commands you could run RUN apt-get install -y genericB ENV PATH=$PATH:something customBase: FROM: debian:jessie build: | RUN apt-get update && apt-get install -y buildessentials

Después de instalar la herramienta CLI de docker-make ( pip install dockermake ), puede generar la imagen specificAB pip install dockermake simplemente ejecutando

docker-make specificAB

¿Es posible con Docker combinar dos imágenes en una?

Me gusta esto aquí:

genericA -- / ---> specificAB / genericB --

Por ejemplo, hay una imagen para Java y una imagen para MySQL.

Me gustaría tener una imagen con Java y MySQL.


No, solo se puede heredar de una imagen.

Es probable que no desee que Java y MySQL estén en la misma imagen, ya que es más idiomático tener un solo componente en un contenedor, es decir, crear un contenedor MySQL separado y vincularlo al contenedor Java en lugar de poner ambos en el mismo contenedor.

Sin embargo, si realmente debe tenerlos en la misma imagen, escriba un archivo Docker con Java como la imagen base (instrucción FROM) e instale MySQL en el archivo Docker. Debería poder copiar ampliamente las declaraciones del archivo oficial de MySQL Dockerfile.



Si realiza un docker commit , no es útil ver qué comandos se utilizaron para construir su contenedor, debe emitir una docker history image

Si tiene un Dockerfile, simplemente mírelo y verá cómo se construyó y qué contiene.

Docker commit es ''a mano'', por lo que es propenso a errores, la docker build ventana docker build utilizando un Dockerfile que funciona es mucho mejor.