Docker je platforma pro vývoj, nasazení a provozování aplikací v kontejnerech. Kontejnery umožňují balení aplikace a všech jejích závislostí do jednotného balíčku, který lze snadno přenášet mezi různými prostředími a spouštět na různých systémech bez ohledu na jejich konfiguraci.
Příprava instalace
sudo apt-get install ca-certificates curl gnupg lsb-release
Vytvoříme složku a stáhneme klíče
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Přidáme repositář do souboru source.list
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Aktualizujeme a nainstalujeme aplikaci
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Otestování aplikace
sudo docker run hello-world
Výstup:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Základní příkazy
Výpis kontejnerů, které jsou spuštěny
docker ps
Výpis všech stažených obrazů (docker images
)
sudo docker images
První výstup:
REPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest feb5d9fea6a5 16 months ago 13.3kB
Hledání dostupného kontejneru podle názvu
docker search název_kontejneru
Spuštění, restart a zastavení kontejneru
docker start id|název kontejneru
docker stop id|název kontejneru
docker restart id|název kontejneru
Automatické spuštění a zrušení při startu počítače
docker update --restart=yes id kontejneru
docker update --restart=no id kontejneru
Výpis logu kontejneru
docker logs -f <id_kontejneru>
Připojení na konzoli běžícího kontejneru
docker exec -it <id_kontejneru> /bin/bash
Alternativně
docker exec -it <id_kontejneru> /bin/sh --login
Odstranění kontejneru provedeme příkazem
docker rm id kontejneru
Odstranění image
docker image rm id image
Přejmenování image (z Portainer-ce na Container-ce)
docker tag portainer/portainer-ce:latest container-ce
Export/import
Uložení image do souboru
docker save -o image.tar <název_image>
Nahrání image ze souboru
docker load -i image.tar
Oprava KVM bridge
[Service]
ExecStartPre=/etc/alternatives/iptables -A FORWARD -p all -i br0 -j ACCEPT
...
Vzdálená správa
Přidejte nebo upravte řádek ExecStart
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
...