Skip to content

Instantly share code, notes, and snippets.

@dnaprawa
Last active July 13, 2020 09:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dnaprawa/8eecb1a92c13d3afcfe7b21d7da5517a to your computer and use it in GitHub Desktop.
Save dnaprawa/8eecb1a92c13d3afcfe7b21d7da5517a to your computer and use it in GitHub Desktop.

CDW - 4x4h sessions in 06.2020

  • przed warsztatami upewnij się, że:
    • masz zainstalowanego i działającego (!) Dockera
      • sprawdź to za pomocą docker version lub docker container ls
  • Dobrze byłoby również mieć:
    • zainstalowanego git'a
    • jakiś edytor tekstu (polecane: VSCode)

TL;DR; 🙈

  • 👨‍ tutaj (w komentarzach) pojawiać będą się fragmenty poleceń/kodu wykorzystywane w warsztatach
  • 🥛 przewidujemy krótkie przerwy (żeby rozprostować kości/uzupełnić płyny)
  • szkolenie nie będzie nagrywane
@dnaprawa
Copy link
Author

dnaprawa commented Jun 18, 2020

Security

https://github.com/dnaprawa/secure-nodejs-reactjs-docker

Docker Host Security

git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
./docker-bench-security.sh

@dnaprawa
Copy link
Author

dnaprawa commented Jun 23, 2020

TO DO

Podesłać Marcinowi listę poleceń, które były po przerwie

Dodatkowe tematy

  • CI/CD

@dnaprawa
Copy link
Author

dnaprawa commented Jun 23, 2020

Docker Compose Stacks

  1. Stwórz plik docker-compose.stack.yml na node1

  2. wypełnij go zawartością docker-compose.stack.yml

  3. Utwórz stack o nazwie app
    docker stack deploy --compose-file docker-compose.stack.yml app

  4. Dodaj dodatkowe trzy instancje do serwisu app_vote
    docker service scale app_vote=5

  5. Wprowadź takie polecenie, które pozwoli na wyświetlenie wszystkich kontenerów dla serwisu app_vote

  6. Wyświetl wszystkie serwisy.
    docker service ls

  7. Na ten moment, powinieneś mieć zbliżony rezultat:

  8. Otwórz aplikację visualizer w przeglądarce. W tym celu,
    przejdź do środowiska Play-With-Docker.
    W górnym rogu przeglądarki kliknij na 8080.
    Spowoduje to otwarcie nowej karty z aplikacją visualizer.

  9. Przejdź z powrotem do terminala node1 i sprawdź, jakie kontenery działają
    na poszczególnych maszynach.

  10. Z poziomu przeglądarki, za pomocą przycisku DELETE,
    usuń node4 oraz node5 i jeszcze raz sprawdź stan klastra.

  11. Odłącz node4 oraz node5 od klastra. Zaobserwuj zmiany.

  12. Usuń stack app.

docker stack rm app

  1. Zaobserwuj zmiany.
version: "3"
services:

  redis:
    image: redis:alpine
    networks:
      - frontend
    deploy:
      replicas: 1
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
  db:
    image: postgres:9.4
    environment:
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "postgres"
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - backend
    deploy:
      placement:
        constraints: [node.role == manager]
  vote:
    image: dockersamples/examplevotingapp_vote:before
    ports:
      - 5000:80
    networks:
      - frontend
    depends_on:
      - redis
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
      restart_policy:
        condition: on-failure
  result:
    image: dockersamples/examplevotingapp_result:before
    ports:
      - 5001:80
    networks:
      - backend
    depends_on:
      - db
    deploy:
      replicas: 1
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    depends_on:
      - db
      - redis
    deploy:
      mode: replicated
      replicas: 1
      labels: [APP=VOTING]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s
      placement:
        constraints: [node.role == manager]

  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]

networks:
  frontend:
  backend:

volumes:
  db-data:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment