Docker

Use containers to Build, Share and Run your applications

https://github.com/pakomp/msn-workshops-2023

Punkter

  • Docker
    Vad är docker?
    https://docs.docker.com/

  • Dockerfile
    Hur man bygger en docker image

  • docker-compose
    Hur man kan paketera flera docker images och deras inställningar
    till en komplett applikation

Docker

Docker installation

Windows

winget install docker.dockerdesktop

Linux

sudo wget -qO- get.docker.com|bash

Docker test

docker run busybox date

Dockerfile

Dockerfile

Dockerfile

docker cli

docker build -t msn-image .

docker run -d -p 80:80 --name msn-container --rm msn-image

docker stop msn-container

Dockerfile

dockerfile

Uppgift 1

wget https://picsum.photos/200 -O src/html/pic.png
curl -sS https://picsum.photos/200 -o src/html/pic.png
  • Uppdatera index.html så den visar de två nya bilderna

Dockerfile

dockerfile

Uppgift 2

  • Använd ARG för att skapa en variabel som kan ersätta storleken på bilden som hämtas från picsum
ARG size=200

docker-compose

docker-compose

docker-compose

Uppgift 1

  • Lägg till en ny wordpress service som är kopplad till en mysql databas

docker-compose

mysql env

      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress

wordpress env

      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_NAME=wordpress
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress

docker-compose

Uppgift 2

  • Lägg till ytterligare en webserver liknande servicen som använda vår egna lokala nginx image via build
services:
  msn-webserver:
    build:

WK

Nu borde ni kunna följa hur laravel sail är uppbyggd i wk-api

Eller hur utveckling burkarna för WK2 skapas

Extra

  • Ytterligare dockerfile kommandon WORKDIR/USER/CMD/ENTRYPOINT

  • (optional) composerize
    Omvandla docker cli kommandon till docker-compose yaml syntax
    https://www.composerize.com/

  • (advanced) docker networks
    Skapa olika tycker av nätverk för att separera workload från varandra