2013-12-03 4 views
5

Я пытаюсь связать контейнер baby mongo с контейнером родительского узла, используя удаленный API Docker v1.7.Связывание контейнеров с помощью Docker Remote API

Я вижу Links недвижимости в HostConfig который я угадывание передается запрос
POST /containers/<id>/start как

{ 
    "Links": ["<container-name>:<alias>", ...] 
} 

Я не вижу, как назвать контейнер Монго использовать при запуске контейнера узла , Есть ли аналогия API для CLI -name флаг для docker run?

Необходимо ли сделать отдельный запрос GET /containers/<id>/json и жить с помощью автогенеративного имени?

+2

Это не будет отвечать на ваш вопрос, но всякий раз, когда мне интересно, «как, черт возьми, я это делаю с API», , Я просто обнюхиваю связи между докером cli и API. Я использую tcpflow или socat для этого, в зависимости от того, слушает ли демон docker (соответственно) tcp или сокет. –

ответ

9

В текущем (1.8) API, то -name флаг передается в виде строки запроса в POST /v1.8/containers/create - то есть, как это:

POST /v1.8/containers/create?name=redis_ambassador 

(POST тела опущены для краткости)

Я понял это путем использования Geoffrey Bachelet «s отличного предложения использовать SOCAT в качестве прокси-сервера для всех моего докера CLI команды, используя следующие команды:

# on one terminal 
sudo socat -t100 -v UNIX-LISTEN:/tmp/proxysocket.sock,mode=777,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock 

# on a second terminal 
export DOCKER_HOST="unix:///tmp/proxysocket.sock" 

Последующие docker команды cli будут проксированы через socat, и их вызовы CLI будут отображаться на другом терминале.

+0

Прокси-сервер socate является потрясающим, благодаря вам и [Джеффри Бачелет] (http://stackoverflow.com/users/227887/geoffrey-bachelet) для подсказки! –

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