У меня довольно простая настройка стека Docker. В настоящее время у меня есть один узел в кластере (узел-менеджер). В этом кластере я использую один агент переносчика (portainer_agent), чтобы следить за узлом и веб-интерфейсом переносного устройства (portainer_portainer).
Проблема, с которой я столкнулся, заключается в том, что когда я sh ' d в узел, я могу получить доступ к portainer_portainer через его опубликованный порт (localhost:9000
). Однако, когда я пытаюсь получить доступ к тому же порту (10.0.0.6:9000
) на внешнем IP-адресе узла из моего настольного браузера (не на узле кластера), я не могу получить какие-либо данные из контейнера. Что-то я сделал не так? Я включил свой docker inspect для portainer_portainer.
docker версия на linux
Docker version 19.03.12, build 48a66213fe
portainer_portainer inspect
ID: j62wg3sgry5326h4gli3apvxe
Name: portainer_portainer
Labels:
com.docker.stack.image=portainer/portainer
com.docker.stack.namespace=portainer
Service Mode: Replicated
Replicas: 1
UpdateStatus:
State: completed
Started: 57 seconds ago
Completed: 44 seconds ago
Message: update completed
Placement:
Constraints: [node.role == manager]
UpdateConfig:
Parallelism: 1
On failure: pause
Monitoring Period: 5s
Max failure ratio: 0
Update order: stop-first
RollbackConfig:
Parallelism: 1
On failure: pause
Monitoring Period: 5s
Max failure ratio: 0
Rollback order: stop-first
ContainerSpec:
Image: portainer/portainer:latest@sha256:f8c2b0a9ca640edf508a8a0830cf1963a1e0d2fd9936a64104b3f658e120b868
Args: -H tcp://tasks.agent:9001
Mounts:
Target: /data
Source: /mnt/portainer/data
ReadOnly: false
Type: bind
Resources:
Networks: portainer_agent_network
Endpoint Mode: vip
Ports:
PublishedPort = 8000
Protocol = tcp
TargetPort = 8000
PublishMode = ingress
PublishedPort = 9000
Protocol = tcp
TargetPort = 8000
PublishMode = ingress