【发布时间】:2018-03-18 11:28:41
【问题描述】:
我无法在同一服务器上的两个 docker 容器之间进行 cURL 调用。
你会发现所有正在运行的容器:
“仪表板”容器托管一个可通过 URL https://www.myapp.com/ 访问的 web 应用程序
“api”容器托管另一个可通过 URL https://api.myapp.com 访问的 web 应用程序
我无法从仪表板容器中对 https://api.myapp.com 进行 cURL 调用。我每次都收到超时错误。
可能存在路由问题或其他问题?
目前唯一可行的方法是使用“本地表示法”http://air360-api:8082/ 对 URL 进行 curl。
我在 docker run 命令中使用了多个 DockerFile。
你能帮我解决这个问题吗?谢谢!
PS : 网址是伪造的,请勿尝试调用它们 :D
已编辑 1 添加 dockerfile / init :
我通过运行以下 cmd 启动我的 docker 实例:
docker run -t -d -p "80:80" -p "443:443" --dns "8.8.8.8" --dns "8.8.4.4" --link "dashboard-dev" --link "dashboard" --link "api" --link "media" --link "front "apache"
这里是 API 容器的 dockerfile。它与仪表板 dockerfile 相同,只是项目不同:
FROM microsoft/dotnet:2.0-sdk
# Install dependencies
RUN apt-get update -y
RUN apt-get install -y python-pip python-setuptools python-dev build-essential
RUN pip install --upgrade pip
RUN pip install ua-parser --no-cache-dir
# Set environment variables
ENV ASPNETCORE_URLS="http://*:8082"
ENV ASPNETCORE_ENVIRONMENT="Development"
# Copy files to app directory
COPY . /app
# Set working directory
WORKDIR /app/API-Project
# Restore NuGet packages
RUN ["dotnet", "restore"]
# Open up port
EXPOSE 8082
# Run the app
ENTRYPOINT ["dotnet", "run"]
【问题讨论】:
-
发布你的 docker-compose 文件
-
@TarunLalwani :刚刚编辑了问题。你有什么想法吗?
-
您是否使用
docker run单独运行每个容器?您应该使用docker-compose您的案例。此外,--link现在已弃用并避免显示,因为它将在即将发布的版本中删除
标签: curl docker dockerfile