Docker: Unterschied zwischen den Versionen
Stefan (Diskussion | Beiträge) |
Stefan (Diskussion | Beiträge) (→Docker Volume) |
||
| Zeile 119: | Zeile 119: | ||
docker volume ls | docker volume ls | ||
docker volume inspect vol1 | docker volume inspect vol1 | ||
| − | + | [ | |
| + | { | ||
| + | "CreatedAt": "2021-03-17T23:56:32+01:00", | ||
| + | "Driver": "local", | ||
| + | "Labels": {}, | ||
| + | "Mountpoint": "/var/lib/docker/volumes/vol1/_data", | ||
| + | "Name": "vol1", | ||
| + | "Options": {}, | ||
| + | "Scope": "local" | ||
| + | } | ||
| + | ] | ||
| + | |||
docker volume create nginx_data | docker volume create nginx_data | ||
| + | root@v22019045129287720:/var/lib/docker/volumes/nginx_data/_data# docker volume inspect nginx_data | ||
| + | [ | ||
| + | { | ||
| + | "CreatedAt": "2021-03-18T00:11:13+01:00", | ||
| + | "Driver": "local", | ||
| + | "Labels": {}, | ||
| + | "Mountpoint": "/var/lib/docker/volumes/nginx_data/_data", | ||
| + | "Name": "nginx_data", | ||
| + | "Options": {}, | ||
| + | "Scope": "local" | ||
| + | } | ||
| + | ] | ||
| + | |||
docker run -p 5000:80 -d -ti -v nginx_data:/usr/share/nginx/html nginx | docker run -p 5000:80 -d -ti -v nginx_data:/usr/share/nginx/html nginx | ||
| − | |||
== Udemy Docker Bootcamp - vom Anfänger zum Profi == | == Udemy Docker Bootcamp - vom Anfänger zum Profi == | ||
Version vom 18. März 2021, 00:16 Uhr
Inhaltsverzeichnis
- 1 Docker Doku
- 2 Grundkurs
- 3 26 Docker-Befehle mit Beispielen
- 4 Docker Cheat Sheet
- 5 Docker Befehle / Spickzettel
- 6 Murfman Wiki / Tools / Docker
- 7 Docker einrichten unter Linux, Windows, macOS
- 8 How to install and use Portainer for easy Docker container management
- 9 Workshop
- 10 commit
- 11 build
- 12 run
- 13 Debian
- 14 VPN
- 15 SSH Config
- 16 Docker und VirtualBox / VMWare gleichzeitig unter Windows
- 17 Docker Spickzettel
- 18 Docker Volume
- 19 Udemy Docker Bootcamp - vom Anfänger zum Profi
- 19.1 Installation auf Debian
- 19.2 (8) docker busybox
- 19.3 (9) Blick in den Container
- 19.4 (10) Ports mappen
- 19.5 (11) detached modus
- 19.6 (12) Zugriff auf detached container
- 19.7 (13) Dateien an container übergeben
- 19.8 (14) container stoppen, löschen
- 19.9 (15) container automatisch starten
- 19.10 (16) Stats
- 19.11 (17) Resourcen limitieren
- 19.12 (18) Logs lesen
- 19.13 (19) Logs in JSON Datei
- 19.14 Aufgabe MYSQL Container exportieren
- 19.15 (20) Das erste Dockerfile
- 19.16 (21) Docker Hub
- 19.17 (22) Environment
- 19.18 Aufgabe 2 : Erstelle einen nginx-Server mit einer Dockerfile
- 19.19 (33) Docker Machine
- 19.20 (34) VM erstellen
- 19.21 (35) VM inspizieren
- 19.22 (36) Swarm erstellen
- 19.23 (38) Swarm aufräumen
Docker Doku
https://docs.docker.com/
Grundkurs
https://jaxenter.de/einfuehrung-docker-tutorial-container-61528
https://jaxenter.de/10-wege-docker-images-zu-bauen-1-61421
https://jaxenter.de/12-docker-tipps-61328
26 Docker-Befehle mit Beispielen
https://geekflare.com/de/docker-commands/
Docker Cheat Sheet
https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf
Docker Befehle / Spickzettel
https://www.brocksi.net/docker-befehle/
Murfman Wiki / Tools / Docker
http://notes.murfman.de/Tools/Docker
Docker einrichten unter Linux, Windows, macOS
https://www.heise.de/ct/artikel/Docker-einrichten-unter-Linux-Windows-macOS-4309355.html
How to install and use Portainer for easy Docker container management
https://www.techrepublic.com/article/how-to-install-and-use-portainer-for-easy-docker-container-management/
docker run -d \ --name myPortainer_9000 \ --publish 9000:9000 \ --volume /var/run/docker.sock:/var/run/docker.sock \ --restart always \ portainer/portainer
Workshop
https://www.ab-heute-programmieren.de/docker-teil-1-was-ist-docker/ https://www.ab-heute-programmieren.de/docker-teil-2-das-arbeiten-mit-containern/ https://www.ab-heute-programmieren.de/docker-teil-3-images/ https://www.ab-heute-programmieren.de/docker-teil-4-das-dockerfile/
commit
docker commit -m "myDebian aktuell" -a "Stefan Muehlbauer" e45ba8fe0606c4fffab09d0776cde934a9af9cbe24c3d5d3cfb1bfcc9b7de5ed
build
docker build -t debian:smV1 . (Dockerfile ) https://docs.docker.com/engine/reference/commandline/build/
run
docker run -i -t -d --hostname debian_test --name debian_test -p 9522:22 debian:smV1
https://docs.docker.com/engine/reference/commandline/run/
Debian
docker run -i -t -d --hostname debian_002 --name debian_002 -p 9122:22 debian:latest
VPN
https://mobilejazz.com/blog/setting-up-a-vpn-server-in-5-minutes-with-docker/
SSH Config
docker exec debian_002 apt-get install openssh-server -y
docker exec debian_001 service ssh status docker exec Debian_001 Service ssh start
Docker und VirtualBox / VMWare gleichzeitig unter Windows
https://www.guido-muehlwitz.de/2019/05/docker-und-virtualbox-vmware-gleichzeitig-unter-windows/
Über die Eingabeaufforderung (als Administrator) Hyper-V ausschalten: bcdedit /set hypervisorlaunchtype off Und wieder einschalten: bcdedit /set hypervisorlaunchtype auto Ist Hyper-V aus läuft VirtualBox (und kein Docker), ist es eingeschaltet läuft Docker (und kein VirtualBox). Beides wird (und kann) nicht parallel laufen. Windows wäre übrigens nicht Windows, wenn man an der Stelle den Rechner dann auch jedes Mal neu booten müsste. Danke dafür.
Docker Spickzettel
Zeige Docker Images an docker ps, dockewr ps -a
Erstelle ein DockerImage docker build docker-cpmpose build
Starte ein Docker Image docker run docker-compose up -d
Stoppe ein DockerImage docker stop docker-compose stop
Zeige Logs zu einem DockerImage docker logs <>
Verbinde zu DockerImage per bash docker exec -u www-data -it <> bash
Kopiere date von local zu DockerImage docker cp src/datei_kopieren.zip docker_image_name:/ziel_pfad
Kopiere eine Datei von deinem Docker-Image nach local docker cp docker_image_name:/pfad_zur_datei/test.txt /local_pfad/
Befehl in Docker-Image ausführen ohne auf das Image zu gehen docker exec -u www-data docker_image_name bash -c 'cd /var/www/magento/src && ./bin/magento setup:static-content:deploy de_DE'
IP-Adresse eines Docker-Images herausfinden docker inspecht docker_image_name
Docker Volume
https://www.ionos.de/digitalguide/server/knowhow/docker-container-volumes/ https://www.modius-techblog.de/docker/docker-verwendung-von-volume/
docker volume create vol1
docker volume ls
docker volume inspect vol1
[
{
"CreatedAt": "2021-03-17T23:56:32+01:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/vol1/_data",
"Name": "vol1",
"Options": {},
"Scope": "local"
}
]
docker volume create nginx_data
root@v22019045129287720:/var/lib/docker/volumes/nginx_data/_data# docker volume inspect nginx_data
[
{
"CreatedAt": "2021-03-18T00:11:13+01:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nginx_data/_data",
"Name": "nginx_data",
"Options": {},
"Scope": "local"
}
]
docker run -p 5000:80 -d -ti -v nginx_data:/usr/share/nginx/html nginx
Udemy Docker Bootcamp - vom Anfänger zum Profi
Installation auf Debian
Debian: sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 #Verifizieren, dass der Fingerabdruck 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 lautet sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
Docker Compose https://github.com/docker/compose/releases/
sudo docker oder nur docker
(8) docker busybox
Container laden
docker pull busybox
Images anzeigen
docker images
Container starten
docker run busybox docker run busybox echo "Hallo Welt 42"
Container anzeigen
docker ps docker ps -a
container löschen
docker rm <containerid> docker rm $(docker ps -a -q -f status=exited) docker container prune
(9) Blick in den Container
-it docker run -it busybox sh
(10) Ports mappen
-p sudo docker pull nginx sudo docker run nginx sudo docker run -p 5000:80 nginx
(11) detached modus
-d docker run -d -p 5000:80 nginx
(12) Zugriff auf detached container
exec docker exec -ti <containerid> bash attach docker attach <containerid>
docker run -p 5000:80 -d -ti nginx docker attach <containerid> strg p; strg q
(13) Dateien an container übergeben
docker run -p 5000:80 -d -v source:destination nginx
docker run -p 5000:80 -d -ti -v /var/lib/docker/volumes/nginx/html/_data:/usr/share/nginx/html nginx
(14) container stoppen, löschen
docker stop <containerid> docker rm <containerid>
docker image ls docker image rm <image> docker image prume
(15) container automatisch starten
--restart on-failure, always, unless-stopped, never docker run -p 5100:80 -dit --name mynginx nginx docker run -p 5100:80 -dit --restart unless-stopped --name mynginx nginx
(16) Stats
docker stats
(17) Resourcen limitieren
-m xm, --cpus=x.x docker run -p 5100:80 -dit -m 4m --cpus="0.5" --restart unless-stopped --name mynginx nginx
(18) Logs lesen
logs docker run -p 5100:80 -dit --restart unless-stopped --name mynginx nginx docker attach <containerid>
docker logs <containerid>
(19) Logs in JSON Datei
docker run -p 5100:80 -dit --restart unless-stopped --log-driver json-file --log-opt=100m --log-opt max-file=100 --name mynginx nginx
sudo docker inspect -f Vorlage:.LogPath <containerid>
Aufgabe MYSQL Container exportieren
docker run --name myMYSQL_100 mysql:latest docker run --name myMYSQL_100 -e MYSQL_ROOT_PASSWORD=myPW -p 53306:3306 -dit mysql:latest docker exec -ti <containerID> bash
(20) Das erste Dockerfile
app.py, Dockerfile, requirements.txt sudo docker build -t first . docker run -dit -p 5200:80 first
(21) Docker Hub
docker login smbsoft docker tag first smbsoft/first:1.0 docker push smbsoft/first:1.0
(22) Environment
ENV=
Aufgabe 2 : Erstelle einen nginx-Server mit einer Dockerfile
(33) Docker Machine
$ curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine docker-machine version
base=https://github.com/docker/machine/releases/download/v0.16.2 curl -L $base/docker-machine-$(uname -s)-$(uname -m) > /tmp/docker-machine sudo install /tmp/docker-machine /usr/local/bin/docker-machine
(34) VM erstellen
docker-machine create --driver virtualbox myVM001 docker-machine create --driver virtualbox myVM002 docker-machine create --driver virtualbox myVM003
docker-machine ls docker-machine stop <vm>
(35) VM inspizieren
docker-machine inspect <vm>
(36) Swarm erstellen
docker-machine swarm leave --force docker-machine swarm init docker-machine swarm init --advertise-addr <IP>
docker-machine ssh VM "docker swarm join --token <> <IP>"
docker node ls
(38) Swarm aufräumen
docker stack rm <> docker-machine ssh VM "docker swarm leave"
docker swarm leave -f
docker-machine ls
docker-machine stop $(docker-machine ls -q) docker-machine rm $(docker-machine ls -q)