Docker: verschil tussen versies
(2 tussenliggende revisies door dezelfde gebruiker niet weergegeven) | |||
Regel 79: | Regel 79: | ||
controleert of ze alle 3 gestart zijn. kubectl.sh cluster-info toont info over de master en het cluster in zijn geheel | 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 | ||
+ | |||
+ | [https://www.docker.com/ Docker website] | ||
+ | |||
+ | [https://hub.docker.com/ Docker Hub] | ||
+ | |||
+ | [https://docs.docker.com/ Docker documentatie] | ||
+ | |||
+ | [http://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/ Docker op de Raspberry Pi] | ||
+ | |||
+ | [http://play-with-docker.com play with docker, mei 2018 computer en techniek] | ||
+ | |||
+ | [https://store.docker.com/editions/community/docker-ce-desktop-windows 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 | ||
+ | |||
+ | [https://github.com/docker/compose/issues/5548] | ||
+ | |||
+ | [https://github.com/docker/for-win/issues/1649] |
Huidige versie van 6 mei 2018 om 00:16
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
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
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
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
play with docker, mei 2018 computer en techniek
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