Docker compose运行2个容器,但只有一个服务在工作?
首先,最后一件事: 我想运行2个Asp.net核心应用程序,并能够调用每个应用程序(通过不同的端口) 我已经设法做到了一部分,但似乎一次只有一个处于活动状态Docker compose运行2个容器,但只有一个服务在工作?,docker,asp.net-core,docker-compose,dockerfile,Docker,Asp.net Core,Docker Compose,Dockerfile,首先,最后一件事: 我想运行2个Asp.net核心应用程序,并能够调用每个应用程序(通过不同的端口) 我已经设法做到了一部分,但似乎一次只有一个处于活动状态 这是webapplication3的dockerfile(在webapplication3文件夹中) 这是webapplication1的dockerfile(在webapplication1文件夹中) Docker compose.yml文件: 太好了,让我们建立和建立: 正如您所看到的,这两个选项都处于启用状态: 让我们看一下doc
这是
webapplication3
的dockerfile(在webapplication3文件夹中)
这是webapplication1
的dockerfile(在webapplication1文件夹中)
Docker compose.yml
文件:
太好了,让我们建立和建立:
正如您所看到的,这两个选项都处于启用状态:
让我们看一下docker ps:
现在,让我们尝试调用:
正如你们所看到的,两者都在起作用,但我应该得到不同的结果
()
我期待着
http://localhost:3333/api/values
将显示我是webapplication 1的响应
及
http://localhost:5555/api/values
将显示我是来自webapplication 3的响应
配置YML文件时
问题:
如何让我在docker compose中声明的端口访问每个端点?很难给出明确的答案,因为问题可能超出了您的问题提供的信息范围。但我可以试着给你一些解决问题的技巧:
docker compose up-d
启动您的服务(您可能已经这样做了)我将解释我是如何得到这个答案的 起初我对自己说:“忘记yml”,让我们手动运行它 转到webapplication 1文件夹-->
docker run-p5555:80-d3f10b9720b26
转到webapplication 3文件夹-->
docker run-p3333:80-d3f10b9720b26
但我还是得到了同样的结果
所以这与yml无关
然后我想,“我一次又一次地覆盖同一个图像,如果我给每个图像添加不同的标签会怎么样?”
并添加标签:
(这基本上创建了两个不同的图像)
现在
解决了
不要在同一图像上反复运行
。使用标签。我看到它们都带有ps…-但无论我在浏览器中运行哪个端口,我都会看到相同的响应ebtw,而不使用-d。Docker只在你停止一项服务后才开始写作?(-d只返回命令提示符,-d:detach),现在我得到了这个Hi。你看到我的答案了吗?对不起,如果我问了一个愚蠢的问题,那么你说的“他们去同一个服务”是什么意思。两个端口都提供来自一个服务的答案。我还希望当localhost:5555时,webapplication 3会有响应
http://localhost:3333/api/values // for webapplication3
http://localhost:5555/api/values // for webapplication1
FROM microsoft/dotnet:latest
WORKDIR /app
ADD ./bin/Debug/netcoreapp2.1 /app
EXPOSE 80
CMD ["dotnet", "WebApplication3.dll"]
FROM microsoft/dotnet:latest
WORKDIR /app
ADD ./bin/Debug/netcoreapp2.1 /app
EXPOSE 80
CMD ["dotnet", "WebApplication1.dll"]
version: '3.4'
services:
webapplication3:
image: microsoft/dotnet:latest
build: ./WebApplication3
ports:
- "3333:80"
webapplication1:
image: microsoft/dotnet:latest
build: ./WebApplication1
ports:
- "5555:80"
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"