No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Docker

Curso de Docker

Guido Vilari帽o

Guido Vilari帽o

Docker Compose: la herramienta todo en uno

23/33
Recursos

Aportes 93

Preguntas 30

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

docker-compose para apps en Python y Django
file tree
|__ docker-compose.yml
|__ Dockerfile
|__ requirements.txt


Notas
Docker compose nos ayuda utilizar docker con una estructura declarativa y facilita la gesti贸n. Toda la configuraci贸n la podemos encontrar en el fichero .YAML.


# Versi贸n del compose file
version: "3.8"

# Servicios que componen nuestra aplicaci贸n.
## Un servicio puede estar compuesto por uno o m谩s contenedores.
services:
# nombre del servicio.
  app:
  # Imagen a utilizar.
    image: platziapp
	# Declaraci贸n de variables de entorno.
    environment:
      MONGO_URL: "mongodb://db:27017/test"
	# Indica que este servicio depende de otro, en este caso DB.
	# El servicio app solo iniciara si el servicio debe inicia correctamente.
    depends_on:
      - db
	# Puerto del contenedor expuesto.
    ports:
      - "3000:3000"

  db:
    image: mongo

Comandos basicos de docker-compose

Docker Compose es una herramienta que permite simplificar el uso de Docker. A partir de archivos YAML es mas sencillo crear contendores, conectarlos, habilitar puertos, volumenes, etc.

Con Compose puedes crear diferentes contenedores y al mismo tiempo, en cada contenedor, diferentes servicios, unirlos a un vol煤men com煤n, iniciarlos y apagarlos, etc. Es un componente fundamental para poder construir aplicaciones y microservicios.

Docker Compose te permite mediante archivos YAML, poder instruir al Docker Engine a realizar tareas, program谩ticamente. Y esta es la clave, la facilidad para dar una serie de instrucciones, y luego repetirlas en diferentes ambientes.

Comandos:
$ docker-compose up -d (crea todo lo declarado en el archivo docker-compose.yml)

Instalar Docker compose en Linux es muy sencillo, ya que Docker compose es simplemente un binario cualquiera (tal cual si fuera un .sh), simplemente tienes que descargar el binario, ponerlo dentro de alguna carpeta bin que est茅 dentro de tu variable $PATH, darle permisos de ejecuci贸n y es todo 馃 Las instrucciones para hacerlo est谩n en la p谩gina, pero b谩sicamente son 3 sencillos pasos, as铆 cuando ejecutas docker-compose en Linux, este ir谩 a buscarlo dentro de alguna carpeta que est茅 dentro de la variable $PATH y ejecutar谩 el binario 馃

A continuaci贸n un ejemplo del uso de docker compose con la definici贸n de un Dockerfile y el Docker Compose, para tener NODE con MongoDB

Dockerfile para crear NODE

############################################################
# Dockerfile para configurar aplicaci贸n en node.js - Express
############################################################

# Establece la imagen base
FROM node

# Crear directorio de trabajo
RUN mkdir -p /opt/app

# Se estable el directorio de trabajo
WORKDIR /opt/app

# Instala los paquetes existentes en el package.json
COPY ./project/package.json .

RUN npm install --quiet

# Copia la Aplicaci贸n
COPY ./project/. .

# Instalaci贸n de Nodemon en forma Global
# Al realizarse cambios reiniciar el servidor
RUN npm install nodemon -g --quiet

# Expone la aplicaci贸n en el puerto 8000
EXPOSE 8000

# Inicia la aplicaci贸n al iniciar al contenedor
CMD nodemon -L --watch . app.js

Y el Docker Compose seria:

version: '3.7'
services:

  web:
    container_name: node
    build: .
    depends_on:
      - mongo
    restart: always
    ports:
      - 3000:3000
      - 8000:8000
    volumes:
      - /Users/miruta/Developer/curse-node/node-mongo/project:/opt/app
    networks:
      - redinterna

  mongo:
    container_name: mongo
    image: bitnami/mongodb
    restart: always
    ports:
      - 27017:27017
    volumes:
      - /Users/miruta/Developer/curse-node/node-mongo/mongodata:/bitnami
    networks:
      - redinterna

networks:
  redinterna:
    driver: bridge```

El docker compose es una herramienta que nos permite describir de forma declarativa la arquitectura de nuestra app.

Quiero dejarles mi experiencia con Docker-Compose y espero poderte ahorrar al menos unas 2 horas de tu vida si tuviste mi mismo inconveniente.
Trabajando puntualmente en Ubuntu 20.04, se me ocurri贸 la brillante idea (why not?) de instalar docker compose con sudo apt install docker-compose, despu茅s de todo, 驴qu茅 puede salir mal?.
Pues bien! b谩sicamente no lo pude usar!, me sacaba un mont贸n de errores relacionados con la sintaxis, as铆 copiara cualquier ejemplo de manera literal.
Me decid铆 a desinstalar por completo docker, puesto que le铆 que ciertas versiones de docker // docker-compose no son compatibles, lo hice, y al reinstalar, todo segu铆a igual.
Para hacer la historia corta y 煤til, decid铆 seguir las instrucciones de la p谩gina oficial de docker (https://docs.docker.com/compose/install/) que curiosamente no era con apt install.
Voila, todo funcion贸!

Si tienen error al descargar la imagen de platziapp mediante docker-compose, porque al parecer la imagen ya no existe

 => ERROR [internal] load metadata for docker.io/library/platziapp:latest 

Pueden construir su propia imagen del la app solo cambian el comando image por build del docker compose les quedaria de la sieguiente manera:

version: "3.8"

services:
  app:
    build: ./
    environment:
      MONGO_URL: "mongodb://db:27017/test"
    depends_on:
      - db
    ports:
      - "3000:3000"

  db:
    image: mongo 

En este caso lee el dockerfile del proyecto ra铆z para construir la imagen y el dia de hoy puede pueden ejecutar con

docker-compose up -d  

o tambi茅n los pueden hacer con

docker compose up -d

Docker compose es una herramienta que nos permite describir de forma declarativa la arquitectura de nuestra aplicaci贸n, utiliza compose file (docker-compose.yml).

22. Docker Compose: la herramienta todo en uno
Docker compuse en s铆ntesis describ铆 de forma declarativa la arquitectura de los servicios que nuestra aplicaci贸n necesita, es decir: c贸mo se tienen que comunicar entre si los contenedores manejo de puertos, manejo de conexiones, esto lo hacemos a trav茅s de un archivo.yml y es importante la identaci贸n. La estructura del archivo tiene que ver con lo siguiente:

Pasos para utilizar un docker compuse

  1. Eliminar el contenedor de mongo db.

  2. Eliminar el contenedor de aplicaci贸n platzi.

  3. Este paso es opcional, ir a la carpeta del proyecto y abrir vs code

  4. Levantar nuestro archivo con docker.

  5. Levantamos nuestro docker compuse

  6. verificamos que los servicios est茅n levantados

Ejecuci贸n de los Pasos para utilizar un docker compuse

  1. $ sudo docker rm -f container_mongo_db

  2. $ sudo docker rm -f container_platzi_app

  3. $ cd ~/docker-pj/-docker && code .

  4. $ sudo docker-compose up -d
    -d: este par谩metro sirve para no conectar
    nuestro terminal con la terminal de docker-compuse

  5. $ sudo docker ps

Docker compose hace que todo sea muucho m谩s f谩cil de trabajar y es una de las razones de por qu茅 Docker es tan popular y 煤til.

驴Como se podrian conectar diferentes proyectos creados con diferentes docker-compose a una misma red configurandolo directamente en cada docker-compose.yml?

Solo para aclarar una duda que ten铆a.
La versi贸n 3.8, es la versi贸n del 鈥渃ompose file format鈥, es ideal usar la m谩s reciente, pero ojo, que no es lo mismo que la versi贸n del docker-compose.

Para comprobar la versi贸n instalada del docker-compose que tienes en tu m谩quina, corre el comando:

$ docker-compose -v

Para m谩s informaci贸n sobre la versi贸n del 鈥渃ompose file format鈥, aqu铆 dejo enlace:

https://docs.docker.com/compose/compose-file/

鉁 Un aporte para la clase:

para versiones anteriores teniamos que escribir el comando docker-compose up pero para las ultimas versiones de docker compose esto ya no es necesario, sencillamente se escribe como un argumento dentro del comando de docker docker compose up

El keyword VERSION ya no es requerido (en las versiones m谩s recientes), es opcional y puede servir para fines informativos.

Fuente de la informaci贸n

Using Compose is basically a three-step process:

  1. Define your app鈥檚 environment with a Dockerfile so it can be reproduced anywhere.

  2. Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.

  3. Run docker-compose up and Compose starts and runs your entire app.

Me froto las manos al ver lo que se puede hacer con Docker jajaja

siempre es mejor saber c贸mo se hacen las cosas, pero esta herramienta facilita muchas cosas

Docker compose es usado por lo regular de forma local para desarrollador.
Puedes levantar toda la infraestructura de tu app para desarrollar:

  • tu app
  • backing services

Aun que en Produccion no se use es recomendable usar Docker Compose para desarrollar, demas de que proporciona una valiosa documentacion para todo tu equipo

Si siguen todos los pasos para instalar el Docker Engine en linux y aun asi el comando todavia les da error pero si corren 鈥榙ocker compose version鈥 y les dice que tienen la v2 entonces no usen 鈥榙ocker-compose up鈥 ; en vez de eso usen directamente: docker compose. (sin el guion medio)

Para quienes utilicemos Composer con PHP este post es muy util, muy bien explicado.

En las ultimas versiones es necesario correr el siguiente comando sin el guion (docker-compose)

docker compose up

Dos cosas para tener en cuenta:

  • Para la versi贸n 1x de docker-compose el comando correcto es docker-compose up

  • Para la version 2x el comando es: docker compose up

Nota: algo para tener en cuenta es que debes correr este comando en el directorio del proyecto, no se si les paso que cuando lo hacen por fuera te sale un error

Para instalar docker-compose en Linux Fedora:

sudo dnf install docker-compose -y

Sin necesidad de nada mas.

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application鈥檚 services. Then, with a single command, you create and start all the services from your configuration.

Docker Compose:
鈥渄escribe de forma declarativa la arquitectura de servicios que nuestra aplicacione necesita,en un archivo donde declaramos lo que queremos que pase y docker por detras se encarga de ejecutar todos estos pasos que antes ejecutabamos manualmente.鈥

tengase encuenta que docker-compose puede solicitar una imagen de mongo, porque est谩 en los repositorios, pero si no has creado previamente la imagen platziapp, NO FUNCIONA, prueva el comando $docker system prune -a, y comienza esta clase.

Unos comando que pueden ahorrar tiempo:

  • Det茅n todos los contenedores ejecut谩ndose: docker rm $(docker ps -a -q)

  • Elimina todos los contenedores detenidos: docker rm $(docker ps -a -q)

Siento que aun no entiendo como aplicarlo a un proyecto real en mi maquina local.
I mean, si yo uso por ejemplo un proyecto que esta en git, en codeigniter, y corre con cierta versi贸n de php, y necesita m谩s de una db en mysql y quiero que ese proyecto pueda entrar desde una url tipo proyecto.test (en vez de localhost) y no quiero que el contenedor se cree cada vez que empiece a trabajar sobre 茅l, si no m谩s bien que solo se inicie. Me podr铆an orientar?

En mi caso que uso una m谩quina con Arch Linux los pasos de la p谩gina de instalaci贸n me dieron un error, pero lo solucion茅 al instalar este paquete:

sudo pacman -S libxcrypt-compat

Tambi茅n pueden observar los logs de los servicios que esta corriendo el docker-compose

docker-compose logs --tail 10 -f

Si quieren observar los logs de un servicio en especifico, hacen los siguiente:

docker-compose logs app

Encontr茅 esto para el docker-compose y no s茅 si lo mencionen m谩s adelante, pero me pareci贸 util.

La idea es que podrias tener una shell interactiva (como cuando usas la opcion -it ) pero desde el Docker Compose:

services:
  app:
    image: app:1.2.3
    stdin_open: true # docker run -i
    tty: true        # docker run -t

Para los que usamos Linux. Una vez instalado docker compose, ejecutar:

sudo docker compose up

Excelente metodolog铆a Guido, excelente tu curso.
Felicitaciones!

Docker Compose

  • Es una herramienta que nos permitir谩 definir y ejecutar aplicaciones Docker empleando varios contenedores.

  • En Compose, se usa un archivo YAML para configurar los servicios de la aplicaci贸n.

las clases anteriores vimos el trabajo de Docker de manera manual para conocer la funcionalidad y en este video estamos viendo como funciona lo mismo anterior pero mas automatizado con un solo documento

Aqu铆 pueden observar las versiones de docker-compose

https://docs.docker.com/compose/compose-file/compose-versioning/

Un one line command para eliminar todos los contenedores:

docker rm -f $(docker ps -a|cut -f1 -d' '|grep -v CONTAINER) 

Para Linux y Mac, espero les sirva

A nadie mas le aparece este error al correr el docker-compose?

https://www.dropbox.com/s/xtizl5x1xe8x8co/express.PNG?dl=0

#Crear contenedores con compose
  docker-compose up

#Crear contenedores con compose detachados
  docker-compose up -d

Esto es b谩sicamente, Infraestructura como C贸digo! 馃馃Ж

Importante mencionar que al ejecutar docker-compose up por primera vez, si no declaraste en el archivo la network, crea una llamada 鈥渄ocker_default鈥.

Excelente y muy 煤til herramienta.

genial!

docker compose = describir de forma declarativa, la arquitectura de servicios que nuestra aplicacion necesita, como se tienen que comunicar entre si, manejo de archivo de estas, en un peque帽o archivo donde declaramos lo que queremos que pase. Y docker background lo hace

nano docker-compose.yml
######docker-compose.yml#######

version: "3.8"
services:
  app:
    image: platziapp
    environment:
      MONGO_URL: "mongodb://db:27017/test"
    depends_on:
      - db
    ports:
      - "3000:3000"

  db:
    image: mongo

###############################
docker-compose 

docker-compose up -d
![](https://drive.google.com/file/d/1UndH8vRc0K4lU2pEw9lFul0xMeHYEVih/view?usp=sharing)![](https://drive.google.com/file/d/1UndH8vRc0K4lU2pEw9lFul0xMeHYEVih/view?usp=sharing)![]()![]()![](https://static.platzi.com/media/user_upload/docker-compose-4376b0d8-47da-41c2-9082-2847c02b1d98.jpg)
Una imagen explicando que fue cada cosa de nuestro archivo docker-compose.yml
Para saber qu茅 versi贸n deben utilizar en el archivo Compose, les dejo la documentaci贸n de Docker donde tienen una tabla de compatibilidades. Aparte de eso, en esta p谩gina pueden encontrar m谩s informaci贸n acerca de las diferencias entre versiones y c贸mo actualizar a alguna en concreto: **<u>Documentaci贸n</u>**: <https://docs.docker.com/compose/compose-file/compose-versioning/>
2024 Si no te sirve el comando, quita el guion `docker compose up` Checa la documentacion actualizada ;) <https://docs.docker.com/compose/gettingstarted/>
Mi aporte para la clase: Docker Compose es una herramienta todo en uno que permite definir y administrar m煤ltiples contenedores de Docker como una aplicaci贸n. Con Docker Compose, puedes definir todos los servicios necesarios para tu aplicaci贸n en un archivo YAML y luego ejecutarlos con un solo comando. Esta herramienta facilita la creaci贸n y gesti贸n de entornos de desarrollo complejos, ya que se encarga de la configuraci贸n y la interconexi贸n de los diferentes contenedores. Adem谩s, Docker Compose permite escalar los servicios individualmente y gestionar la comunicaci贸n entre ellos. Con Docker Compose, puedes definir la configuraci贸n de red, vol煤menes, variables de entorno y otros aspectos de la infraestructura de tu aplicaci贸n. Esto permite que tu aplicaci贸n sea f谩cilmente reproducible en diferentes entornos, lo que facilita la colaboraci贸n y la implementaci贸n en producci贸n. En resumen, Docker Compose es una herramienta poderosa para simplificar el desarrollo y despliegue de aplicaciones basadas en contenedores de Docker. Proporciona una manera f谩cil y eficiente de definir y administrar m煤ltiples servicios, lo que ayuda a mejorar la productividad y la eficiencia en el desarrollo de aplicaciones.

Algo importante desde Julio de 2023:

From July 2023 Compose V1 stopped receiving updates. It鈥檚 also no longer available in new releases of Docker Desktop.

Compose V2, which was first released in 2020, is included with all currently supported versions of Docker Desktop. It offers an improved CLI experience, improved build performance with BuildKit, and continued new-feature development.

鈥 En Fedora Linux, se actualiza asi:

  1. Add repo:
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

  1. Install
$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

En https://devhints.io/docker-compose podemos encontrar el cheatsheet de docker-compose

Estoy usando Manjaro Linux y me he topado con algunas dificultades (ya que no tiene tanto soporte como Ubuntu, Debian o el mismo Arch).
Asi que si tienen problemas corriendo 鈥docker-compose鈥, les explico como lo solucion茅.

Primero segu铆 el link que se encuentra en recursos: https://docs.docker.com/compose/install/

Me fij茅 que en la terminal de Guido 茅l escribi贸:

'docker-compose up'. 

Pero me arrojaba un error que dec铆a en esencia:

Terminal -'Oye, creo que no tienes esa dependencia 驴Te la descargo?
Yo -'Ehh, bueno 馃憤'
Terminal -'Mira, acabo de intentar descargarla pero parece que ya la tienes y le pertenece a Docker Desktop, asque tengo un conflicto con los archivos, sorry 馃槯'

As铆 que investigando descubr铆 que el comando correcto para usar el docker compose ya instalado con las instrucciones en el link de recursos era el siguiente:

docker compose up
# Sin el '-'

No s茅 si realmente este comentario sirva o a cu谩ntos les haya sucedido este problema, pero espero que a alguno le sirva.

Docker Compose: la herramienta todo en uno

Creamos un archivo docker-compose.yml donde indicamos todas las configuraciones necesarias para nuestro proyecto en vez de hacer todo separado en la terminal.

Ejecutamos entonces sudo docker compose up -d

Docker-compose
Para Linux toca instalarlo aparte. Es un archivo donde nosotros declaramos todo lo que queremos que docker haga de forma automatizada sin tener que estar haci茅ndolo manualmente en el CLI.

Para ejecutarlo, debes estar en la misma carpeta donde est谩 el archivo de docker-compose, y el comando ser铆a siguiente docker-compose up
version
Indica la versi贸n de docker-compose que se est谩 utilizando
services
Son los servicios que conforman la aplicaci贸n. Dicha de otra formas son los componentes o m贸dulos o tecnolog铆as que necesita nuestro proyecto, como por ejemplo, bases de datos, kafka, java, etc.
app
Es el servicio que va a correr la aplicaci贸n que necesitamos.
image
Como cada contenedor nace de una imagen, lo que se hace ac谩 es especificar cu谩l es la imagen de ese contenedor
environment
Sirve para declarar variables de entorno del contenedor
depends_on
Para declarar de qu茅 contenedor depende. Es decir, cu谩les contenedores se deben crear primero
ports
sirve para declarar los puertos donde se va a exponer la app. Con la misma sintaxis de que el puerto de la izquierda es del anfitri贸n y el de la derecha del contenedor
db
Es el servicio que correr la base de datos

From the end of June 2023 Compose V1 won鈥檛 be supported anymore and will be removed from all Docker Desktop versions.

Make sure you switch to Compose V2 with the docker compose CLI plugin or by activating the Use Docker Compose V2 setting in Docker Desktop. For more information, see the Evolution of Compose
more info

Para los que tuvieron problemas ejecutando docker-compose, lo pueden hacer de la siguiente manera.

docker compose up -d

Creo que les puede ayudar este contenido. https://www.youtube.com/watch?v=Fxs3xWzvEEU

Muy en resume comentan que el formato yml es MUY FRAGIL y puede generar problemas en producci贸n. Recomiendan revisar como opci贸n alterna el uso de json schema.

A partir de finales de enero del 2023 docker-compose no ser谩 soportado y ser谩 eliminado, ahora se usar谩 docker compose

Actualmente, la instalaci贸n de Linux ya posee Docker compone, en la misma instalaci贸n de Docker se tienen que usar el comando de la siguiente forma:

docker compose up -d 
docker compose up
docker compose down

Estoy usando Linux Ubuntu. Puedo usar Compose escribiendo docker compose version por ejemplo.

Es decir, sin el gui贸n medio funciona 鉁

Si les falla la intalaci贸n de 鈥榙ocker compose鈥 en Linux, pueden encontrar la soluci贸n en este link:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04-es
Pero debes tener en cuenta que en la instalaci贸n desde github agregar la letra 鈥渧鈥 antes de la versi贸n que desees instalar. En mi caso fue:
$ sudo curl -L 鈥https://github.com/docker/compose/releases/download/v2.14.1/docker-compose-$(uname -s)-$(uname -m)鈥 -o /usr/local/bin/docker-compose

Docker compose es una herramienta de Docker que permite definir y ejecutar aplicaciones Docker de forma sencilla y declarativa. Con Docker Compose, se pueden utilizar archivos de configuraci贸n 鈥渄ocker-compose.yml鈥 para especificar los diferentes contenedores que forman parte de una aplicaci贸n y c贸mo deben interconectarse. Esto permite a los desarrolladores definir y gestionar la configuraci贸n de una aplicaci贸n de Docker de forma eficiente. Con Docker Compose, es posible levantar una aplicaci贸n completa con solo unos pocos comandos, lo que agiliza el proceso de desarrollo y pruebas de aplicaciones de Docker.

En un solo archivo .yml, se declara que servicios o componentes tiene la aplicacion distribuidos en dos o mas contenedores, cada uno con su respectiva imagen. El docker compose tiene la capacidad de orquestar o vincular contenedores y microservicios de la aplicacion.

Para que poder personalizar el nombre del container utilizar container_name

version: "3.8"

services:
  app:
    container_name: app
    image: platziapp
    environment:
      MONGO_URL: "mongodb://db:27017/test"
    depends_on:
      - db
    ports:
      - "3000:3000"
  db:
    container_name: db
    image: mongo
  • Docker Compose nos permite integrar diferentes soluciones (imagenes del build - conectar entre si contenedores - montar archivos y hacer watch con nodemon).
  • Describe de forma declarativa la arquitectura de servicios necesarios para nuestra aplicaci贸n en un archivo y Docker se ocupa en el back-end de correr esos comandos鈥

驴Qu茅 es docker compose?
Docker compose es una herramienta que te permite manejar aplicaciones que consisten en multiples contenedores de Docker. En lugar de tener m煤ltiples Dockerfiles y estar ejecutando y vinculando uno por uno con Docker, definimos un archivo docker-compose.yml con la configuraci贸n que deseemos y lo ejecutamos, esto crear谩 todos los servicios necesarios de nuestra aplicaci贸n. Adem谩s funciona en ambientes de desarrollo, producci贸n, staging o testing, as铆 como con servicios de integraci贸n continua.

Usando Ubuntu asi se instalaria el Docker Engine junto con el Docker Compose

$ sudo apt-getupdate
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Fuente: https://docs.docker.com/engine/install/ubuntu/

una belleza docker compose

Docker Compose: la herramienta todo en uno

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application鈥檚 services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.

Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases.

See Docker compose
Permite crear de forma declarativa servicios para nuestro proyecto

(docker-compose)

  • version: debe declararse
  • services: nombre del servicio (describe una parte de la aplicaci贸n) un servicio puede tener uno o m谩s contenedores de la misma imagen
  • depends_on: los contenedores de este servicio dependen de鈥 (primero debe ejecutar el servicio)
  • ports: puertos expuestos del servicio (host:container)
  • environment: Variables de entorno
  • env_file: Archivo con variables de entorno
  env_file:
    - .env

volumes: Volumen montado en nuestro servicio (host_dir:container_dir)
Ejemplo montando el index.js de nuestro proyecto al container

    volumes:
      - ./index.js:/usr/src/index.js

Comandos

  • Ejecutar servicio
    Ultilza por defecto el archivo docker-compose.yml
    Nota: crea una network por defecto
    con el commando -d lo ejecuta en background y ejecuta todos los servicios
docker-compose up -d
  • Tambien puedes ejecutar solo un servicio
docker-compose up -d <service_name>
  • Bajar servicio
    Baja todos los servicios
docker-compose down

es genial!

Incre铆ble Docker! porque hasta ahora lo conozco ! gracias Guido!

No puede haber dos contenedores escuchando en el mismo puerto.

En ArchLinux solo es cuesti贸n de hacer:

sudo pacman -S docker-compose
```

it鈥檚 amazing

Entendido UUUpp

Si te sale este error

bash: /usr/local/bin/docker-compose: Permiso denegado

Aplicar permisos ejecutables al binario:

sudo chmod +x /usr/local/bin/docker-compose

docker-compose es para Docker como lo es CloudFormation para AWS 馃槢

docker-compose up

corre compose en la l铆nea de comando

docker-compose up -d

corre compose en detach para que no se quede enganchada la terminal

AHHHHHHH POR FIN ENTIENDO PARA QUES SIRVE EL DOCKER COMPOSE Y SU DIFERENCIA CON EL DOCKERFILE!!!

#9:11 creo que le pone el nombre de la carpeta que le circunda al docker-compose.yml

en linux me pasa que debo escribir sudo docker-compose up -d

sudo apt install docker-compose

馃槑

Muy buena clase

Excelente herramienta!!!

Un servicio puede tener uno o mas contenedores de la misma imagen.

Esta clase es la que m谩s me ha sorprendido 鉂わ笍

  • Docker compose, es una manera de escribir de manera declarativa, mientras que los docker file se describen de manera imperativa, paso a paso.
  • En docker compose, hablamos de servicios, el cual puede tener mas de un contenedor.
  • docker-compose build, para crear las imagenes de los servicios de docker
  • docker-compose up -d, para iniciar los servicios declarados en el archivo de docker-compose.
  • docker-compose ps, visualizar los servicios que se est谩n ejecutando.

https://docs.docker.com/samples/django/

Documentaci贸n para correr docker-compose para django conectado con una db de postgres