====== Notatka z dockera ====== instalacja $ sudo apt update $ sudo apt install docker.io $ docker -v $ sudo usermod -a -G docker obraz dockera jest jak klasa w cpp i jest używany do tworzenia kontenera wyszukiwanie obrazu $ docker search ubuntu pobieranie obrazu $ docker pull ubuntu wypisz wszystkie obrazy $ docker image ls uruchom kontener $ docker run ubuntu informacje o kontenerze $ docker container inspect kali1 wypisz uruchomione kontenery $ docker ps -a uruchom kontener z procesem $ docker run --name $ubu2 -it ubuntu bash wyjdź z kontenera bez zatrzymywania go ctrl+p ctrl+q wróć do kontenera $ docker attach eb4 albo (tworząc nowy proces) $ docker exec -it eb4 bash usuwanie obrazu $ docker image rm $ docker rmi Usuwanie kontenera $ docker rm Usunięcie wszystkich kontenerów $ docker container prune uruchomienie w detachu $ docker run -d --name ng nginx wyświetlenie logów $ docker logs uruchomienie z przekierowanie portów $ docker run -d -p 8080:80 --name ng2 nginx wybór losowego portu $ docker run -d -P --name ng2 nginx ===== Sieci ===== wylistuj sieci $ docker network ls inspekcja sieci $ docker network inspect bridge tworzenie sieci $ docker network create mojasiec $ docker network connect mojasiec kali1 $ docker network create --subnet 10.0.0.0/24 newlan można też podłączyć do sieci przy tworzeniu $ docker run -dit --name kali3 --net mojasiec kalilinux/kali-rolling /bin/bash $ docker create -it --name kali4 --net mojasiec kalilinux/kali-rolling /bin/bash odłączanie od sieci $ docker network disconnect bridge kali1 ===== Kopiowanie plików ===== $ docker run -d --name debtest1 debian sleep inf $ docker cp file.txt debtest1:/file.txt $ docker cp debtest1:/file.txt ./file2.txt (nie da się kopiować między kontenerami) ===== Montowanie katalogów ===== $ mkdir -p directory/{a,b,c} $ docker run -it -v ~/directory:/losowykatalog debian bash ===== Wolumeny ===== $ docker volume create vol $ docker volume ls $ docker inspect vol ===== Dockerfile ===== ''Dockerfile'' to plik z instrukcjami budowania obrazów dockera $ docker build -t img:tagname . $ docker run -it img:tagname bash ===== Docker Swarm ===== ==== przyznawanie statycznego adresu ip przy tworzeniu noda ==== /etc/network/interfaces auto enp0s3 iface enp0s3 inet dhcp auto enp0s8 iface enp0s8 inet static address 192.168.100.1 netmask 255.255.255.0 potem w konsoli systemctl restart networking ==== Tworzenie do swarma ==== $ docker swarm init --advertise-addr 192.168.100.1 $ docker swarm join-token worker ==== Dołączanie do swarma==== $ docker swarm join --token asdfasdfasdfasdf ==== Operacje na nodach==== $ docker node ls $ docker node inspect $ docker node promote ==== usuwanie noda ==== $ docker node rm $ docker swarm leave (z poziomu node) ==== serwisy (cos takiego jak docker run) ==== $ docker service create --name debian sleep inf $ docker exec -it bash $ docker service create --name deb constrain node.hostname==node2 debian sleep inf $ docker service create --name viz -p 8080:8080 --constraint node.role=manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer $ docker network create -d overlay --opt encrypted newcryptnet $ docker service create --name=vol --mount type=volume,source=newv,target=/workdir deb sleep inf $ docker service create --name redisbad --replicas=4 redis $ docker service ps redisbad