Как развернуть локальный проект Api docker -compose на удаленном хосте через S SH? - PullRequest
0 голосов
/ 26 января 2020

Я уже разработал Node.js проект API, который использует docker-compose up для запуска. Теперь я пытаюсь развернуть проект на удаленном хосте Ubuntu через s sh. Также я установил node.js и docker на удаленном хосте.

Вопрос: Как я могу развернуть локальный проект на хост через s sh и docker -compose?
Каков правильный порядок этого? Нужно ли для этого создать Dockerfile, или я могу сделать это с docker-compose.yml?

Заранее спасибо.

1 Ответ

1 голос
/ 26 января 2020

Если вы хотите развернуть на удаленном хосте Docker с вашего локального хоста, есть несколько вариантов.

Вы можете настроить удаленного демона Docker на прием TCP-соединений, прошедших аутентификацию в оба направления с использованием SSL-сертификатов. Вероятно, это рекомендуемый способ настройки удаленного доступа, поскольку он изначально поддерживается клиентом Docker. Подробнее об этом можно прочитать в Docker ' Protect Docker daemon socket"документации.

Второй вариант - перенаправить сокет Docker с удаленного хоста. на локальный хост через ssh туннель. Если вы ssh подключитесь к удаленному хосту следующим образом ...

ssh -L /tmp/docker.sock:/var/run/docker.sock me@remotehost

... тогда вы сможете получить доступ к удаленному демону Docker, используя сокет /tmp/docker.sock на локальном хосте. Вам необходимо установить переменную окружения DOCKER_HOST следующим образом:

export DOCKER_HOST=unix:///tmp/docker.sock

docker-compose также распознает переменную окружения DOCKER_HOST.

Конечно, это работает только долго как вы подключены к удаленному хосту.


Например:

bash-5.0$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
bash-5.0$ ssh -nN -L /tmp/docker.sock:/var/run/docker.sock docker.local &
[1] 1363146
bash-5.0$ export DOCKER_HOST=unix:///tmp/docker.sock
bash-5.0$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
10924fc5f455        registry:2          "/entrypoint.sh /etc…"   2 weeks ago         Up 19 hours         0.0.0.0:5000->5000/tcp   registry

(Здесь я поместил свое ssh соединение в фоновом режиме, чтобы я мог продолжать работать на моем локальном хосте. Конечно, вы можете просто использовать второй терминал для подключения ssh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...