私は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 [email protected]
私は使用します:
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
:
しかし、それは役に立ちませんでした。携帯電話(別のネットワーク)からもサイトを開いてみましたが、うまくいきませんでした。
編集:
使用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のサイトにはありません。
まず、Dockerイメージが紺碧で機能するかどうかを確認し、SwarmマスターサーバーからWebページを開くことができます。
ssh -p 2200 [email protected] # 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
、しばらく待ちます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加