簡體   English   中英

Docker-compose運行2個容器,但是只有一個服務在工作?

[英]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聲明的端口訪問?

很難給出確切的答案,因為問題很可能不在您的問題提供的信息范圍之內。 但是我可以嘗試給您一些麻煩的提示:

  1. 使用docker-compose up -d啟動服務(您可能已經這樣做了)
  2. 使用docker-compose ps檢查狀態和端口轉發
  3. 做你的api檢查
  4. 使用docker stop webapplication1停止一項服務
  5. 重復2和3。

您仍然可以訪問兩個端口嗎?

如您所見,兩者都在工作,但是兩者都使用同一服務!

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM