Telepítés (Ubuntu/Debian, hivatalos repo)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER # hogy sudo nélkül is használható legyenBeállítás
Itt két dolgot emelnék ki:
Docker bridge IP range izolálása (nagyon fontos)
Docker data kiszervezése a rootból, hogy az Imagek ne tudják belakni a rendszerlemezt.
sudo systemctl stop docker
sudo systemctl stop containerd
sudo rsync -aP /var/lib/docker/ /mnt/Storage/Docker/
sudo rm -rf /var/lib/dockersudo nano /etc/docker/daemon.json
{
"default-address-pools": [
{
"base": "10.250.0.0/16",
"size": 24
}
],
"data-root": "/mnt/Storage/Docker"
}sudo systemctl start containerd
sudo systemctl start dockerTeszt
docker info | grep "Docker Root Dir"Ugyanezt végezzük ez a containerd -vel is.
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo mkdir /mnt/Storage/Docker/containerd
sudo mv /var/lib/containerd/* /mnt/Storage/Docker/containerd/
rm -rf /var/lib/containerdsudo nano /etc/containerd/config.toml
root = "/mnt/Storage/Docker/containerd"sudo systemctl restart containerd
sudo systemctl restart dockerNetworkManager explicit tiltás Docker interface-ekre
Miért van erre szükség? Ubuntun hajlamos megbolondulni a NetworkManager és előfordulhat hogy lelősz egy containert és a Host elköszön a hálózattól, mert valamelyik vitruális hálózatra vált át.
Azt a következőképpen akadályozhatjuk meg.
sudo nano /etc/NetworkManager/conf.d/docker.conf
[keyfile]
unmanaged-devices=interface-name:docker0;interface-name:br-*;interface-name:veth*systemctl restart NetworkManagerImage építés és konténer futtatás alapparancsai
docker build -t [image_nev]:[tag] .
docker run -d --name [konteiner_nev] -p [host_port]:[konteiner_port] [image_nev]:[tag]
docker ps # futó konténerek listázása
docker logs -f [konteiner_nev]
docker exec -it [konteiner_nev] bash
docker stop [konteiner_nev]
docker rm [konteiner_nev]None-Imagek törlése - TAKARÍTÁS
docker image prune -a
docker builder prune -a
docker system prune -a