使用CLI将docker-compose部署到Azure时,在访问代理页面时会超时

try*_*ard 6 deployment azure docker docker-compose azure-container-service

我有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:
Run Code Online (Sandbox Code Playgroud)

我按照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
Run Code Online (Sandbox Code Playgroud)

然后我得到了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
Run Code Online (Sandbox Code Playgroud)

我连接到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
Run Code Online (Sandbox Code Playgroud)

但是我无法通过连接到我的网站ipagent在上面的例子中我试着去 104.42.144.82:8000104.42.144.82:8001/#!/registration 甚至10.0.0.5:8000

我抽出时间.当我在本地运行这个dockerfile时,我就像这样连接到我的站点: localhost:8000localhost:8001/#!/registration

试穿

az --version
azure-cli (2.0.32)
Run Code Online (Sandbox Code Playgroud)

我尝试打开端口Azure:

https://imgur.com/cjslLMN

https://imgur.com/nSAQdLS

但这没有帮助.我试过从手机打开网站(另一个网络上)没有帮助.

编辑:

使用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:
Run Code Online (Sandbox Code Playgroud)

并且从问题的相同步骤我可以访问端口80上的第一个站点,但我无法访问端口8001上的站点.如果我将端口从8001更改为80,并且离开8000 - 那么我可以访问端口80上的站点但在8000端口的网站上没有.

Syl*_*qaz 1

首先,检查您的 docker 映像是否在 azure 中工作,并且您可以从 swarm master 服务器打开网页。

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)
Run Code Online (Sandbox Code Playgroud)

如果页面未加载,则图像存在问题或您的应用程序未正常启动。如果页面加载,则意味着网络基础设施存在问题。集群代理的负载均衡器中可能缺少规则。80默认情况下, 、 和443处有开放端口8080。只需添加新规则8000,然后稍等片刻。