¿Qué es Docker?
Docker es una plataforma que permite crear, ejecutar y administrar contenedores.
Un contenedor es como una “caja” que incluye todo lo necesario para que una aplicación funcione: el código, las dependencias, las librerías y la configuración. Esto hace que la aplicación se ejecute siempre igual, sin importar en qué máquina o sistema operativo la lances.
Podemos descargar docker a partir de este enlace.
Características de nuestro contenedor
El siguiente fichero de configuración de docker montará un servidor con:
- PHP
- PhpMyAdmin
- MySQL
Esta configuración nos permitirá utilizar bases de datos y programar en PHP. Esto es algo que usaremos en los cursos de:
Configuración de nuestro contenedor
docker-compose.yml
services:
app:
image: webdevops/php-apache-dev:8.3
container_name: php-app
working_dir: /app
ports:
- "8080:80"
volumes:
- ./:/app
depends_on:
- db
environment:
WEB_DOCUMENT_ROOT: /app # Añadiremos /public si estamos desarrollando para Laravel
DB_HOST: db
DB_USERNAME: root
DB_PASSWORD: root
composer:
image: composer:2
container_name: composer
volumes:
- ./:/app
working_dir: /app
entrypoint: ["composer"]
artisan:
image: webdevops/php-apache-dev:8.3
working_dir: /app
volumes:
- ./:/app
entrypoint: ["php", "artisan"]
depends_on:
- db
db:
image: mysql:8.0
container_name: mysql-db
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- "3306:3306"
volumes:
- dbdata:/var/lib/mysql
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
environment:
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: root
ports:
- "8081:80"
depends_on:
- db
volumes:
dbdata:
Para desplegar la aplicación en docker, ejecutaremos:
docker compose up -d