Docker com laravel
#Comandos
DockerV1: docker compose build
DockerV2: docker-compose build
Buildar a img: docker compose build
Subir e rodar: docker compose up
Subir e rodar "deamon/background" docker compose up -d
Derrubar: docker compose up down
Container executando: docker ps
Docker Listar: docker ps -a
Renomear name: docker rename "name" "novonome"
Docker Iniciar: docker start "Id" ou "name"
Docker exec: docker exec "Id" ou "name" ps -ef (precisa estar em execucao)
Docker Entrar: docker attach "Id" ou "name"
Docker Sair: exit
Docker Remover: docker rm -f "id" ou "name"
Docker Remover Images: docker rmi -f "id" ou "name"
Docker Images: docker images
Limpar todas imagens "Format": docker system prune
Limpar "geral": docker system prune --all --force --volumes
Remover rede: docker network rm [rede]
Inspecionar rede: docker network inspect [rede]
Desconectar rede: docker network disconnect [container_id]
Limpeza completa:
docker container prune -f
docker image prune -a -f
docker volume prune -f
docker network prune -f
docker system prune -a -f
Caso utilize o mysql/mariadb local, precisa mapear a porta, exemplo:
version: "3.9"
services:
web:
image: urnau/app1-php:prod-nginx-php-fpm8.2.3
container_name: web
build:
context: .
dockerfile: ./docker/Dockerfile
args:
PHP_VERSION: '8.3.8-fpm-bullseye'
ports:
- "80:80" #http
- "443:443" #https
- "3306:3306" #MariaDB
Porém no .env do laravel, modificar a linha:
#DB_HOST=127.0.0.1
DB_HOST=host.docker.internal
Lentidão na sincronização de docker/volumes:
Realizado teste com volumes e bind-mount, para desenvolvimento sincronizar a pasta de fonte com o docker, obteve lentidão de 850ms até 1.7s
Para contorno, adicionar a tag no dockerfile:
#volumes: #para dev, deixar descomentado, para replicar sempre que alterar
#- ./app:/var/www/app
#- docker-sync:/var/www/app
# - type: bind
# source: ./app
# target: /var/www/app
develop:
watch:
- action: sync
path: ./app
target: /var/www/app
Ao invés de subir o comando com docker-compose up ou docker-compose up --build, utilizar o docker-compose watch (Ctrl+C para cancelar)
Se deixar ativo (descomentado) o volumes, ainda há problema mesmo subindo com docker-compose watch
Também funciona com (Depreciado, utilizar develop):
x-develop:
watch:
- action: sync
path: ./app
target: /var/www/app
Exemplo de .bat (windows) para subir os serviços automaticamente. NPM RUN DEV ou outro (php artisan serve),
@echo off
cd E:\
cd E:\projetodocker
start "Composer Watch" cmd /k "docker-compose watch"
cd E:\projetodocker\app
start "NPM Dev Server" cmd /k "npm run dev"
Banco de dados.
Utilizado o programa "HEIDI" é possível realizar backup de um banco para outro diretamente. Imagem abaixo

Fontes:
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Um abraço, e até a próxima