Miguel Angel Gordián
@ilcapitanozoek
Es una plataforma para el desarrollo, administración y ejecución de contenedores.
Imágenes Es el elemento base, el cual contiene las dependencias, la aplicación y algunas configuraciones.
Contenedores Es la instancia de una imagen, está aislado del sistema y puede sobre escribir las configuraciones por defecto.
Stacks Es un conjunto de contenedores que definen un servicio.
Podemos obtener imágenes
desde un registry o construirlas por medio de un Dockerfile tomando una imagen como base.
docker pull composer/composer
docker pull redis
FROM php:5.6-cli
EXPOSE 8080
ADD . /app
WORKDIR /app
ENTRYPOINT php -S 0.0.0.0:8080 src/index.php
Dockerfile
FROM Indica la imagen que tomaremos como base base
RUN ejecuta un comando en una nueva capa intermedia para la construcción del contenedor.
WORKDIR indica el directorio base, por defecto se ejecutarán comandos a partir de este directorio.
ADD Copia los archivos locales al contenedor.
ENTRYPOINT Indica el comando a ejecutar por el contenedor.
Solo necesitas ejecutar el sub comando build y darle un tag a tu imagen.
docker build -t php-junio .
Sending build context to Docker daemon 4.608 kB
Sending build context to Docker daemon
Step 0 : FROM composer/composer
---> b87b6a34ca39
Step 1 : ADD . /app
---> ac10ddaf2e5f
Removing intermediate container 5fe467d8b756
Step 2 : WORKDIR /app
---> Running in feae9da8b08a
---> 17e508381433
Removing intermediate container feae9da8b08a
Step 3 : RUN composer install
---> Running in 474d3dbe699e
Podemos partir de cualquier imagen si tenemos su id o tag.
docker run -it --rm -p 80:8080 php-session
-i mantiene stdin abierta
-t Asigna una pseudo-tty
-rm Elimina el contenedor después de su uso.
-p Enlaza un puerto del contenedor al host
-v Asigna un volumen al contendor.
Docker ps Mostrar contenedores activos
Docker images Mostrar todas mis imágenes
Docker start Inicia un contenedor
Docker stop Detiene un contenedor activo
Docker rm/rmi Borran un contenedor o imagen respectivamente.
Es una herramienta para definir y ejecutar aplicaciones con múltiples contenedores.
mongo:
image: mongo
junio:
build: .
command: "php -S 0.0.0.0:8080 src/index.php"
ports:
- "80:8080"
volumes:
- ".:/app"
links:
- mongo