User Tools

Site Tools


docker_notes

Notatka z dockera

instalacja

$ sudo apt update
$ sudo apt install docker.io
$ docker -v
$ sudo usermod -a -G docker <default user>

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 <id>
$ docker rmi <id>

Usuwanie kontenera

$ docker rm <id>

Usunięcie wszystkich kontenerów

$ docker container prune

uruchomienie w detachu

$ docker run -d --name ng nginx

wyświetlenie logów

$ docker logs <id>

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 <id>
$ docker node promote <id>

usuwanie noda

$ docker node rm <id>
$ docker swarm leave (z poziomu node)

serwisy (cos takiego jak docker run)

$ docker service create --name <name> debian sleep inf
$ docker exec -it <id> 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
docker_notes.txt · Last modified: by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki