Docker: Unterschied zwischen den Versionen

Aus
Wechseln zu: Navigation, Suche
(Udemy Docker Bootcamp - vom Anfänger zum Profi)
Zeile 214: Zeile 214:
 
  docker tag first smbsoft/first:1.0
 
  docker tag first smbsoft/first:1.0
 
  docker push smbsoft/first:1.0
 
  docker push smbsoft/first:1.0
 +
 +
=== (22) Environment ===
 +
ENV=
 +
 +
=== Aufgabe 2 : Erstelle einen nginx-Server mit einer Dockerfile ===

Version vom 24. Februar 2020, 14:20 Uhr

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

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

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 5100:80 nginx

(11) detached modus

-d
docker run -d -p 5100:80 nginx

(12) Zugriff auf detached container

exec
docker exec -ti <containerid> bash

attach
docker attach <containerid>
docker run -p 5100:80 -d -it nginx
docker attach <containerid>
strg p; strg q

(13) Dateien an container übergeben

docker run -p 5100:80 -d -v source:destination 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