клиентский доступ к Docker Swarm

У меня есть кластер docker swarm, состоящий из одного менеджера и одного рабочего узла. Затем я настроил (tls и DOCKER_HOST) клиента со своего ноутбука на получение доступа к этому кластеру.

Когда я запускаю docker ps, я вижу только контейнеры из рабочего узла (а не все контейнеры рабочего узла (!). Например, от моего клиента:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                                                                                                      NAMES
a129d9402aeb        progrium/consul     "/bin/start -rejoi..."   2 weeks ago         Up 22 hours         IP:8300-8302->8300-8302/tcp, IP:8400->8400/tcp, IP:8301-8302->8301-8302/udp, 53/tcp, 53/udp, IP:8500->8500/tcp, IP:8600->8600/udp   hadoop1103/consul-agt2-hadoop 

Так же, как я запускаю docker ps на рабочем узле:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                                                                        NAMES
4fec7fbf0b00        swarm               "/swarm join --advert"   16 hours ago        Up 16 hours         2375/tcp                                                                                                                                                     join
a129d9402aeb        progrium/consul     "/bin/start -rejoin -"   2 weeks ago         Up 22 hours         0.0.0.0:8300-8302->8300-8302/tcp, 0.0.0.0:8400->8400/tcp, 0.0.0.0:8301-8302->8301-8302/udp, 53/tcp, 53/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-agt2-hadoop

Итак, два вопроса: почему docker ps не показывает контейнеры с управляющей машины, а не все контейнеры с рабочего узла?


person Kenenbek Arzymatov    schedule 22.02.2017    source источник
comment
К какому IP/порту вы подключаетесь со своего ноутбука, к движку менеджера, рабочему движку или порту контейнера диспетчера роя?   -  person BMitch    schedule 03.03.2017
comment
Порт @BMitch удаленного хоста, сопоставленный с контейнером диспетчера роя.   -  person Kenenbek Arzymatov    schedule 03.03.2017


Ответы (1)


Классический рой (запускается как контейнер) по умолчанию скрывает контейнеры управления роем из docker ps вывода. Вместо этого вы можете показать эти контейнеры с помощью команды docker ps -a.

Это поведение может быть задокументировано в другом месте, но единственное место, где я видел документированное поведение, находится в документы по различиям API:

ПОЛУЧИТЬ /контейнеры/json

Контейнеры, запущенные из официального образа swarm, по умолчанию скрыты, используйте all=1, чтобы отобразить их.

Синтаксис all=1 API эквивалентен docker ps -a cli.

person BMitch    schedule 03.03.2017