Неожиданный дополнительный контейнер, созданный при развертывании службы в рое - PullRequest
0 голосов
/ 04 июля 2018

Я наблюдаю странное поведение роя, когда создаю сервис с докером в режиме роя.

По сути, я создаю службу из частного реестра с привязкой:

docker service create --mount type=bind,src=/some/shared/filesystem/mod_tile,dst=/osm/mod_tile,ro --name="mod_tile" --publish 8082:80 --replicas 3 --with-registry-auth  my-registry:5050/repo1/mod_tile

Все идет хорошо ... и мои услуги копируются так, как я ожидал ...

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

CONTAINER ID        IMAGE                                                                    COMMAND                  CREATED              STATUS                PORTS                                            NAMES
ca33d        my-registry:5050/mod_tile:latest                                   "apachectl -D FOREGRâ¦"   About a minute ago   Up About a minute                                                      vigilant_kare.1.fn5u
619e7        my-registry:5050/mod_tile:latest                                   "apachectl -D FOREGRâ¦"   3 minutes ago        Up 3 minutes                                                           mod_tile.3.dyismrc
4f1ebf       demo/demo-tomcat:0.0.1                                                   "./entrypoint.sh"        7 days ago           Up 7 days (healthy)   9900/tcp, 0.0.0.0:8083->8080/tcp                 tomcatgeoserver
d3adf        some.repo:5000/manomarks/visualizer:latest   "npm start"              8 days ago           Up 8 days             8080/tcp                                         supervision_visualizer.1.ok27kbz
673c1        some.repo:5000/grafana/grafana:latest        "/run.sh"                8 days ago           Up 8 days             3000/tcp                                         supervision_grafana.1.pgqko8       some.repo:5000/portainer:latest              "/portainer --externâ¦"   8 days ago           Up 8 days             9000/tcp                                         supervision_portainer.1.vi90w6
bd9b1       some.repo:5000/prom/prometheus:latest        "/bin/prometheus -coâ¦"   8 days ago           Up 8 days             9090/tcp                                         supervision_prometheus.1.j4gyn02
d8a8b        some.repo:5000/cadvisor:0.25.0               "/usr/bin/cadvisor -â¦"   8 days ago           Up 8 days             8080/tcp                                         supervision_cadvisor.om7km
bd46d       some.repo:5000/prom/node-exporter:latest     "/bin/node_exporter â¦"   8 days ago           Up 8 days             9100/tcp                                         supervision_nodeexporter.om7kmd
04b53        some.repo:5000/sonatype/nexus3               "sh -c ${SONATYPE_DIâ¦"   9 days ago           Up 2 hours            0.0.0.0:5050->5050/tcp, 0.0.0.0:8081->8081/tcp   nexus_registry

Сначала я думал, что это был оставшийся контейнер от предыдущих попыток, поэтому я остановил его ... но через несколько секунд он снова поднялся! Независимо от того, сколько раз я остановлю его, он будет перезапущен.

Итак, я предполагаю, что это там специально ... но я не понимаю: у меня уже запущены мои 3 реплики (я проверил на всех узлах), и хотя я продвигаю другой узел, дополнительный контейнер появляется только на лидера ...

Это может быть из одного из моих других контейнеров (используемых для наблюдения), но до сих пор я не мог понять, из какого ...

У кого-нибудь есть идея, почему создается этот дополнительный контейнер?

РЕДАКТИРОВАТЬ 05/07

Вот результат работы докера ps в сервисе mod_tile. Здесь находятся 3 реплики, по одной на каждый узел. Дополнительная услуга не учитывается командой "ps".

ID                  NAME                IMAGE                                    NODE                DESIRED STATE       CURRENT STATE          ERROR               PORTS
c77gc        mod_tile.1          my-registry:5050/mod_tile:latest   VM3           Running             Running 15 hours ago
u7465        mod_tile.2          my-registry:5050/mod_tile:latest   VM4           Running             Running 15 hours ago
dyism        mod_tile.3          my-registry:5050/mod_tile:latest   VM2           Running             Running 15 hours ago

1 Ответ

0 голосов
/ 05 июля 2018

Похоже, у вас есть вторая служба, определенная с именем "vigilant_kare", возможно, автоматически названная, если вы не указали имя.

Режим Swarm автоматически исправит уничтоженный или удаленный контейнер, чтобы вернуть вас в целевое состояние. Чтобы удалить контейнер, управляемый в режиме роя, вам нужно удалить сервис, который управляет им:

docker service rm vigilant_kare
...