[34] Docker: instalacja (generic driver)

Podstawowym warunkiem jest nadanie poprzez sudo wysokich uprawnień użytkownikowi, który zarządzać będzie kontenerami:

# visudo
%sudo   ALL=(ALL) NOPASSWD:ALL

Może być to też dowolna inna grupa której użytkownik ten jest członkiem lub bezpośrednio użytkownik.

Komunikacja z VPSem musi być po kluczu ssh bez hasła dla ww. użytkownika. Należy zatem dodać odpowiedni wpis w .ssh/authorized_keys na zdalnym VPSie.

Dla komunikacji z VPSem należy też odblokować port 2376 na firewallu:

# PORT: 2376 (DOCKER-MACHINE)
$IPTABLES -A INPUT -p tcp --dport 2376 -j ACCEPT

Pobierz i zainstaluj pakiet docker-engine z https://apt.dockerproject.org/repo.

Następnie trzeba skonfigurować docker-machine z odpowiednim sterownikiem:

$ docker-machine create --driver generic \
 --generic-ip-address my.host.com \
 --generic-ssh-user sudo-user \
   my.host.com

Jeśli używasz VPN o adresie w prywatnych zakresach 172.X.X.X to most tworzony przez docker może pokryć się z używanymi już sieciami co doprowadzi do problemów w komunikacji. Nie używaj /etc/default/docker z docker-engine bo jest on ignorowany.

Zamiast tego dodaj odpowiedni wpis "--bip=172.X.X.X/16" do /etc/systemd/system/docker.service, np.:

ExecStart=/usr/bin/docker daemon -H tcp://0.0.0.0:2376 \
          -H unix:///var/run/docker.sock \
          --storage-driver aufs \
          --tlsverify \
          --tlscacert /etc/docker/ca.pem \
          --tlscert /etc/docker/server.pem \
          --tlskey /etc/docker/server-key.pem \
          --label provider=generic \
          --bip=172.20.0.1/16

Sprawdź dostępność zdalnego hosta z docker:

docker-machine ls