2016-11-02 6 views
2

У меня есть установка, которая запускает мой контейнер Docker, как это.Как преобразовать команду запуска Docker в команду Swarm?

run-docker.sh

docker build -t wordpress-gcloud 
container=$(docker run -d wordpress-gcloud) 
ipOfContainer=$(docker inspect "$container" | jq -r '.[0].NetworkSettings.IPAddress') 

Но теперь у меня есть установка грузчиком Swarm (1 менеджер + 2 рабочих).

Как преобразовать приведенный выше сценарий bash для запуска контейнера на рое?

ответ

0

Как правило, вы можете получить доступ к своему кластеру Swarm через API Swarm, который аналогичен API Docker. Чтобы получить доступ к API Swarm, вы можете использовать параметр -H с командами докеров. Например, если у вас есть менеджер роя работает на локальном компьютере, и номер порта 3376, то вы можете получить роя информацию кластера с:

docker -H 127.0.0.1:3376 info 

Вы также можете проверить роя кластера контейнеров:

docker -H 127.0.0.1:3376 inspect <container ID> 

Подробнее о communciate с Swarm кластера можно найти здесь: https://docs.docker.com/swarm/install-manual/#/step-6-communicate-with-the-swarm

Но в вашем случае, я думаю, что docker build команда может быть проблемой. По моему мнению, Swarm найдет случайный узел из вашего кластера, чтобы выполнить этот процесс сборки докеров, поэтому, если Dockerfile не существует на узле, где была выполнена сборка докеров, вы получите ошибку. Моя идея состоит в том, чтобы подумать о создании вашего изображения в определенном месте и нажать изображение на image registry, затем потяните и запустите изображение в любом месте, которое вы хотите.

Смежные вопросы