Comandos básicos de Dockerfile
FROM basado en la imagen base
- FROM centos # Basado en centos: último
- FROM scratch # no se basa en ninguna imagen base.
- DE tomcat: 9.0.22-jdk8-openjdk
ETIQUETA Y MANTENIMIENTO-Información
- MANTENIMIENTO xxxx.com
- Institución e identificación personal
- Versión LABEL = "1.0"
- LABEL description = "Esta es la información de descripción"
WORKDIR: establece el directorio de trabajo
- WORKDIR / usr / local
- WORKDIR / usr / local / newdir # creación automática
- Intenta usar caminos absolutos
AÑADIR Y COPIAR-copiar archivos
- AÑADIR hola / # Copiar al directorio raíz
- AÑADIR test.tar.gz / # Agregar al directorio raíz y descomprimir
- Además de copiar, ADD también tiene la función de agregar archivos remotos
Constante de entorno configurada ENV
- ENV JAVA_HOME / usr / local / openjdk8
- EJECUTE $ {JAVA_HOME} / bin / java -jar test.jar
- Utilice las constantes del entorno tanto como sea posible para mejorar la capacidad de mantenimiento del programa
Instrucciones de ejecución de Dockerfile
EJECUTAR, CMD Y PUNTO DE ENTRADA
-
EJECUTAR: ejecuta comandos durante la compilación
- EJECUTAR yum install -y vim # Formato de comando de Shell
- Generará un proceso de subcapa
- EJECUTAR ["yum", "install", "-y", "vim"] # Formato de comando Exec
- Reemplazará el proceso actual con el proceso Exec y mantendrá el PID sin cambios
- Una vez completada la ejecución, salga directamente sin volver al entorno de proceso anterior
- Se recomienda utilizar el formato de comando Exec para ejecutar comandos
- EJECUTAR yum install -y vim # Formato de comando de Shell
-
PUNTO DE ENTRADA: El comando que se ejecuta cuando se inicia el contenedor.
- Solo se ejecutará el último punto de entrada en el Dockerfile
- ENTRYPOINT ["ps"] # Se recomienda el formato Exec
-
CMD: ejecuta el comando o parámetro predeterminado después de que se inicia el contenedor
- CMD se usa para configurar el comando ejecutado por defecto
- Si hay varios CMD en el Dockerfile, solo se ejecutará el último
- Si se agregan instrucciones adicionales cuando se inicia el contenedor, se ignorará CMD
- CMD ["ps", "-ef"] # Se recomienda el formato Exec
-
Por ejemplo
FROM centos
RUN ["echo", "image building!!!"]
ENTRYPOINT ["ps"]
CMD ["-ef"]
Dockerfile combat-building a Redis image
FROM centos
RUN ["yum", "install", "-y", "gcc", "gcc-c++", "net-tools", "make"]
WORKDIR /usr/local
ADD redis-4.0.14.tar.gz .
WORKDIR /usr/local/redis-4.0.14/src
RUN make && make install
WORKDIR /usr/local/redis-4.0.14
ADD redis-7000.conf .
EXPOSE 7000
CMD ["redis-server", "redis-7000.conf"]
- Crear imagen
- docker build -t python_id.com/docker-redis.