Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Doс;ker映像未在同一端口上启动_C#_Docker_Docker Compose - Fatal编程技术网

C# Doс;ker映像未在同一端口上启动

C# Doс;ker映像未在同一端口上启动,c#,docker,docker-compose,C#,Docker,Docker Compose,我的解决方案中有2个web APi项目,我正在尝试在docker contains上启动它们,但由于某些原因,catalog.APi映像无法在端口8000上启动,在第一次运行时,它能够在端口8000上启动,但在我在端口8001上添加了basket.APi之后,catalog APi给了我一个错误。我的所有其他Docker都可以在同一端口上重新启动,只有catalog.api容器不能在端口8000上重新启动 错误:for catalog.api无法启动服务catalog.api:端口无效 不可用:

我的解决方案中有2个web APi项目,我正在尝试在docker contains上启动它们,但由于某些原因,catalog.APi映像无法在端口8000上启动,在第一次运行时,它能够在端口8000上启动,但在我在端口8001上添加了basket.APi之后,catalog APi给了我一个错误。我的所有其他Docker都可以在同一端口上重新启动,只有catalog.api容器不能在端口8000上重新启动

错误:for catalog.api无法启动服务catalog.api:端口无效 不可用:侦听tcp 0.0.0.0:8000:绑定:试图 以其访问权限所禁止的方式访问套接字

我没有看到端口8000在任何地方被使用,但是api仍然无法在这个端口上启动,我可以在8000以外的其他端口上启动api,但是我需要理解为什么它不能在8000本身上启动

C:\WINDOWS\system32>netstat -an|find /i "8000"
  TCP    0.0.0.0:8000           0.0.0.0:0              LISTENING
  TCP    [::]:8000              [::]:0                 LISTENING
下面是我的docker-compose.override.yml

版本:“3.4”
服务:
目录数据库:
容器名称:catalogdb
重新启动:始终
卷数:
-${WEBAPP\u STORAGE\u HOME}/site:/data/db
端口:
- "27017:27017"
basketdb:
集装箱名称:basketdb
重新启动:始终
端口:
- "6379:6379"
catalog.api:
环境:
-ASPNETCORE_环境=开发
-“CatalogDatabaseSettings:ConnectionString=mongodb://catalogdb:27017"
取决于:
-目录数据库
卷数:
-${HOME}/.microsoft/usersecrets/:/root/.microsoft/usersecrets
-${HOME}/.aspnet/https:/root/.aspnet/https/
端口:
- "8000:80"
basket.api:
环境:
-ASPNETCORE_环境=开发
-“连接字符串:Redis=basketdb:6379”
取决于:
-篮球运动员
卷数:
-${HOME}/.microsoft/usersecrets/:/root/.microsoft/usersecrets
-${HOME}/.aspnet/https:/root/.aspnet/https/
端口:

-“8001:80”
当我从docker compose文件中读取时,您正试图在同一端口80上映射catalog.api和basket.api服务。这是一场冲突。我认为,您应该将catalog.api 8000映射到8000,并将basket.api 8001映射到8001,这样您的端点在主机上就不会发生冲突(我想这里是localhost)

如果您这样做,那么您应该能够访问位于
localhost:8000的catalog.api和位于
localhost:8001的basket.api

所以基本上,这两个服务不能在同一个端口上访问