Práce se vzdálenými Docker hosty
Docker nabízí pohodlný způsob správy kontejnerů na vzdálených hostech bez zpřístupnění Docker daemonu přes TCP. Použití SSH jako transportního protokolu je bezpečné a jednoduché. Tento přístup se skvěle hodí pro nasazování aplikací na VPS nebo cloudové instance.
Základní použití
Ke vzdálenému Docker hostu se můžete připojit nastavením proměnné prostředí DOCKER_HOST na SSH URI:
export DOCKER_HOST=ssh://user@remote-host
docker ps
Příkaz docker ps se tím spustí na vzdáleném stroji a jako transportní vrstvu použije SSH.
Jednořádkové příkazy
Pro rychlé operace můžete proměnnou prostředí nastavit přímo před příkazem:
DOCKER_HOST=ssh://user@remote-host docker ps
DOCKER_HOST=ssh://user@remote-host docker images
DOCKER_HOST=ssh://user@remote-host docker compose up -d
Použití konfigurace SSH
Pro pohodlnější práci si upravte nastavení SSH v souboru ~/.ssh/config:
~/.ssh/configHost docker-server HostName 192.168.1.100 User deploy Port 22 IdentityFile ~/.ssh/docker_key
Potom stačí použít alias hostu:
export DOCKER_HOST=ssh://docker-server
docker ps
Docker Compose se vzdálenými hosty
Docker Compose také respektuje proměnnou DOCKER_HOST:
DOCKER_HOST=ssh://user@remote-host docker compose up -d
To je užitečné zejména při nasazování aplikací do stagingového nebo produkčního prostředí bez složitých CI/CD pipelines. Na vzdálený host můžete jednoduše nasadit aplikaci pomocí Docker Compose.
Požadavky
- Docker musí být nainstalovaný na lokálním i vzdáleném stroji
- Přístup ke vzdálenému hostu přes SSH
- Vzdálený uživatel musí mít oprávnění spouštět příkazy Dockeru (obvykle je členem skupiny
docker)
Bezpečnostní výhody
Použití SSH pro přístup k Dockeru přináší několik výhod:
- Není nutné zpřístupňovat Docker daemon na TCP portech 2375/2376
- Využívá existující SSH autentizaci (klíče a certifikáty)
- Veškerá komunikace je šifrovaná