Docker

Uit Wiki Durk 'o' Theek
Versie door Durkio (Overleg | bijdragen) op 6 mei 2018 om 00:16

(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Ga naar: navigatie, zoeken

Docker is het buzzword van de huidige tijd. Minder zwaar dan virtuele machines, goede scheiding van de containers. Daarom een overzicht van de mogelijkheden.

Docker voor je Synology NAS-sen

Opdracht CT magazine mei 2016

[github.com/inovex/docker-orchestration TODO-app]

Getest met Debian 8 Jessie. docker.io zit in backports-repository

sudo docker network create todoapp_network

sudo docker run --net=todoapp_network --name=redis-master -d redis

sudo docker run --net=todoapp_network --name=redis-slave -d johscheuer/redis-slave:v1

sudo docker run --net=todoapp_network --name=frontend -d -p 3000:3000 johscheuer/todo-app-web:v1

sudo docker inspect frontend geeft het IP-adres waar je via poort 3000 de frontend kunt bereiken

Containers beheren met Compose

Github van Compose

sla docker-compose op in /usr/local/bin en maak met CMD +x uitvoerbaar

ga naar de submap 1-Docker-Tools van de todo-app en voer onderstaand commando uit

sudo docker-compose up -d

sudo docker-compose port todoApp 3000

Dit commando geeft je het ip-adres terug

Machine voor verdelen containers

Github van Machine

docker-machine create -d virtualbox cluster-store

docker $(docker-machine config cluster-store) run -d -p "8500:8500" -h "consul" progrium/consul -server -bootstrap -ui-dir /ui

omgevingsvariabele OPTIONS bewaart de configuratie voor de andere hosts

OPTIONS="-d virtualbox --swarm --swarm-discovery=consul://$(docker-machine ip cluster-store):8500 --engine-opt=cluster-store=consul://$(docker-machine ip cluster-store):8500 --engine-opt=cluster-advertise=eth1:0"

docker-machine create ${OPTIONS} -- swarm-master swarm-master

docker-machine create ${OPTIONS} swarm-node-00

docker-machine create ${OPTIONS} swarm-node--01

docker-machine ls toont de draaiende machines

eval $(docker-machine env --swarm swarm-master)

docker-compose up -d

Hiermee start je de todo-app over de 3 aangemaakte virtuele machines


Kubernetes host-overkoepelende orkestratie

Github voor Kubernetes

export KUBERNETES_PROVIDER=vagrant

export NUM_NODES=3

export KUBERNETES_MEMORY=1024

export MASTER_USER=appuser

export MASTER_PASSWD=k8s-gEhEIm

./cluster/kube-up.sh

./cluster/kubectl.sh get nodes

controleert of ze alle 3 gestart zijn. kubectl.sh cluster-info toont info over de master en het cluster in zijn geheel


Wordpress in een container

mkdir /srv/mysqldata

docker run -d -name mysql-container

-v /srv/mysqldata/:/var/lib/mysql/

-e MYSQL_ROOT_PASSWORD=mysqlpwd mysql

docker run -d -name wordpress-container

-link mysql-container:mysql

-p 8080:80

wordpress


Debian in een container

docker pull debian


docker create --name=mijncontainer -t -i debian

docker start -a -i mijncontainer

docker ps toont alle draaiende containers

docker stop mysql-container wordpress-container voor het stoppen

docker rm mijncontainer voor het verwijderen

docker ps -a toont de aangemaakte containers die niet draaien

docker logs wordpress-container voor het controleren van output in de container

docker exec -t -i wordpress-container bash voor het starten van een interactieve shell

———————————

Oneliner om alle Docker-containers te stoppen en te verwijderen

docker stop $(docker ps -a -q)

docker rm $(docker ps -a -q)

———————————-

Toelichting bij de commando’s in de tekst: De backslashes dienen er alleen voor om een lang commando over meerdere regels onder elkaar te kunnen plaatsen, zodat alles overzichtelijker is op de commandline.

De backslash zorgt er in feite voor dat de shell alles achter de backslash negeert, zodat je er commentaar achter kunt zetten. De rest van het commando komt op de nieuwe regel na een harde return.

docker run -d –name mysql-container \

-v /srv/mysqldata/:/var/lib/mysql/ \

-e MYSQL_ROOT_PASSWORD=mysqlpwd \

mysql

docker run -d –name wordpress-container \

–link mysql-container:mysql \

-p 8080:80 \

wordpress

Docker website

Docker Hub

Docker documentatie

Docker op de Raspberry Pi

play with docker, mei 2018 computer en techniek

kies voor Edge versie

docker version - toont deze niet experimental dan, instellingen, enable experimental settings

OS/Arch geen windows/amd64, via contextmenu switch to windows containers kiezen

docker run -it microsoft/nanoserver

docker run -it busybox

docker pull --platform=linux busybox

[1]

[2]