Развертывание с помощью docker-compose в Azure с использованием интерфейса командной строки дает время ожидания при посещении страницы агента - PullRequest
0 голосов
/ 08 мая 2018

У меня есть docker-compose файл:

version: "3"
services:
  app2:
    image: kamilwit/dockerdocker_app2
    container_name: app2
    build:
      context: ./app2
    volumes:
      - app2data:/data
    environment:
      - LOGGING_LOG-FILES-PATH=/opt/tomcat/logs
    ports:
      - "8000:8080"
  app:
    image: kamilwit/dockerdocker_app
    container_name: app
    build:
      context: ./app
    volumes:
      - app1data:/data
    environment:
      - LOGGING_LOG-FILES-PATH=/opt/tomcat/logs
    ports:
      - "8001:8080"
volumes:
  app1data:
  app2data:

Я следовал инструкциям https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-swarm-walkthrough

А точнее я выполнил следующие команды:

az group create --name myResourceGroup --location westus

az acs create --name mySwarmCluster --orchestrator-type Swarm --resource-group myResourceGroup --generate-ssh-keys --agent-count 1

тогда я получил output от

az network public-ip list --resource-group myResourceGroup --query "[*].{Name:name,IPAddress:ipAddress}" -o table

Name                                                            IPAddress
--------------------------------------------------------------  --------------
swarm-agent-ip-myswarmclu-myresourcegroup-76f1d9agent-EEACED89  104.42.144.82
swarm-master-ip-myswarmclu-myresourcegroup-76f1d9mgmt-EEACED89  104.42.255.141

Я подключаюсь к SSH с: ssh -p 2200 -fNL 2375:localhost:2375 azureuser@104.42.255.141 я использую:

export DOCKER_HOST=:2375

затем я запустил свой файл docker-compose: docker-compose up -d

Выход docker ps:

docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                     NAMES
3bfff4427e44        kamilwit/dockerdocker_app    "/bin/sh /data/app..."   18 minutes ago      Up 8 minutes        10.0.0.5:8001->8080/tcp   swarm-agent-EEACED89000001/app
c297ea34547e        kamilwit/dockerdocker_app2   "/bin/sh /data/app..."   18 minutes ago      Up 8 minutes        10.0.0.5:8000->8080/tcp   swarm-agent-EEACED89000001/app2

Однако я не могу подключиться к своему сайту по ip с agent в приведенном выше примере, я попытался 104.42.144.82:8000 и 104.42.144.82:8001/#!/registration или даже 10.0.0.5:8000

У меня перерыв. Когда я запускаю этот dockerfile локально, я подключаю вот так к своим сайтам: localhost:8000 и localhost:8001/#!/registration

Пробовал на

az --version
azure-cli (2.0.32)

Я пытался открыть порты в Azure:

https://imgur.com/cjslLMN

https://imgur.com/nSAQdLS

Но это не помогло. Попробовал также открыть сайт с мобильного телефона (другая сеть на нем) не помогло.

Edit:

с использованием docker-compose:

version: "3"
services:
  app2:
    image: kamilwit/dockerdocker_app2
    container_name: app2
    build:
      context: ./app2
    volumes:
      - app2data:/data
    environment:
      - LOGGING_LOG-FILES-PATH=/opt/tomcat/logs
    ports:
      - "80:8080"
  app:
    image: kamilwit/dockerdocker_app
    container_name: app
    build:
      context: ./app
    volumes:
      - app1data:/data
    environment:
      - LOGGING_LOG-FILES-PATH=/opt/tomcat/logs
    ports:
      - "8001:8080"
volumes:
  app1data:
  app2data:

и, следуя тем же шагам из вопроса, я могу получить доступ к первому сайту через порт 80, но не могу зайти на сайт через порт 8001. Если я изменил порт с 8001 на 80 и оставил 8000 - тогда я могу получить доступ к сайту через порт 80, но нет доступа к сайту через порт 8000.

1 Ответ

0 голосов
/ 14 мая 2018

Сначала проверьте, работает ли ваш образ докера в Azure, и вы можете открыть веб-страницу с главного сервера Swarm.

ssh -p 2200 azureuser@104.42.255.141 # Connect via ssh to your swarm master
sudo apt-get install lynx # Install lynx - console web browser 
docker ps # check IP address of app
lynx 10.0.0.5:8000 # Open your app in lynx (using private IP address)

Если страница не загружается, значит, проблема с изображением или ваше приложение не запустилось должным образом. Если страница загружается, это означает, что есть проблема с сетевой инфраструктурой. Возможно, в балансировщике нагрузки отсутствуют правила для агента роя. По умолчанию имеются открытые порты в 80, 443 и 8080. Просто добавьте новое правило для 8000 и подождите немного.

...