Документация Инструкции Запуск Docker контейнеров на удаленном сервере


До версии 18.09 для подключения к docker на другом хосте нужно было использовать отдельную утилиту docker-machine.
С версии 18.09 появилась возможность подключения docker клиента к docker серверу через SSH соединение, кроме того, появился механизм Docker Context, который упрощает удаленное управление несколькими окружениями - это могут быть как отдельные docker ноды, так и кластеры Kubernetes или Docker Swarm.

Для подключения теперь достаточно передать в переменной DOCKER_HOST домен или IP адрес, и все команды клиента docker будут выполняться на указанном хосте.


Рассмотрим подключение к удаленному на примере Ubuntu 20.04.

1. Устанавливаем на локальный компьютер пакет Docker CE.

Официальный сайт с пакетами для Linux, Mac, Win: https://docs.docker.com/engine/install/

2. Устанавливаем виртуальный сервер из Heat шаблона 'Ubuntu 20.04 + Docker CE', здесь мы и будем запускать контейнеры.





3. На локальном хосте указываем IP адрес установленного сервера.
mylocalhost:~$ export DOCKER_HOST="ssh://ubuntu@10.20.2.9"
Примечание: Если вы используете VPN соединение к виртуальному датацентру, укажите IP адрес локальной сети.
В другом случае добавьте хосту с docker сервером внешний IP адрес и сконфигурируйте правила сетевого фильтра.


4. Проверяем подключение и запускаем тестовый контейнер
mylocalhost:~$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
...
 Kernel Version: 5.4.0-33-generic
 Operating System: Ubuntu 20.04 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 981.2MiB
 Name: docker-0-dd15
...
mylocalhost:~$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Готово, теперь вы можете запускать docker контейнеры на удаленном хосте.
Для постоянного подключения docker к удаленному хосту можно добавить переменную DOCKER_HOST в ~/.bashrc:
mylocalhost:~$ cat >> ~/.bashrc <<EOF
export DOCKER_HOST="ssh://ubuntu@10.20.2.9"
EOF