[英]Docker-compose runs 2 containers , but only one service is working?
最后一件事:
我想運行2個Asp.net核心應用程序,並且能夠(通過不同的端口)調用每個應用程序。
http://localhost:3333/api/values // for webapplication3
http://localhost:5555/api/values // for webapplication1
我已經設法做到了這一點-但似乎一次只有一個處於活動狀態。
這是webapplication3的webapplication3
(在webapplication3文件夾中)
FROM microsoft/dotnet:latest WORKDIR /app ADD ./bin/Debug/netcoreapp2.1 /app EXPOSE 80 CMD ["dotnet", "WebApplication3.dll"]
這是webapplication1的webapplication1
(在webapplication1文件夾中)
FROM microsoft/dotnet:latest WORKDIR /app ADD ./bin/Debug/netcoreapp2.1 /app EXPOSE 80 CMD ["dotnet", "WebApplication1.dll"]
Docker-compose.yml
文件:
version: '3.4' services: webapplication3: image: microsoft/dotnet:latest build: ./WebApplication3 ports: - "3333:80" webapplication1: image: microsoft/dotnet:latest build: ./WebApplication1 ports: - "5555:80"
偉大的,讓我們建立起來:
如您所見,兩者均處於ON位置:
讓我們看看docker ps
:
現在讓我們嘗試調用:
如您所見,兩者都在工作,但我應該得到不同的結果!
( 我已經修改了操作以返回不同的結果 )
我期待着
http://localhost:3333/api/values
將顯示I'm response from webapplication 1
和
http://localhost:5555/api/values
將顯示I'm response from webapplication 3
由於配置了YML文件
題:
如何使每個端點都可以在docker-compose
聲明的端口訪問?
很難給出確切的答案,因為問題很可能不在您的問題提供的信息范圍之內。 但是我可以嘗試給您一些麻煩的提示:
docker-compose up -d
啟動服務(您可能已經這樣做了) docker-compose ps
檢查狀態和端口轉發 docker stop webapplication1
停止一項服務 您仍然可以訪問兩個端口嗎?
如您所見,兩者都在工作,但是兩者都使用同一服務!
100%確定情況確實如此嗎?
我勒個去....
我知道了我的問題。
我將解釋如何獲得此答案。
首先,我對自己說:“忘記yml”,讓我們手動運行它。
轉到Web應用程序1文件夾----> docker
docker run -p 5555:80 -d 3f10b9720b26
轉到webapplication 3文件夾----> docker
docker run -p 3333:80 -d 3f10b9720b26
而且我還是有同樣的結果!
所以這與yml無關
然后我想:“我一次又一次地覆蓋同一張圖片,如果我對每張圖片進行不同的標記怎么辦?”
所以我修改了yml以實際使用圖像 並添加標簽 :(基本上創建了兩個不同的圖像)
version: '3.4'
services:
webapplication3:
image: microsoft/dotnet:foo
build: ./WebApplication3
ports:
- "3333:80"
depends_on:
- webapplication1
webapplication1:
image: microsoft/dotnet:bar
build: ./WebApplication1
ports:
- "5555:80"
現在 ..........
解決了。
不要一次又一次地在同一圖像上run
。 使用標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.