Docker 컨테이너 전반의 API 호출
P粉764003519
2023-08-29 19:43:11
<p>한 도커 컨테이너(<code>container_A</code>)에서 제공된 API를 사용하여 다른 컨테이너(<code>container_B</code>)에 액세스하려고 합니다. 이 두 컨테이너는 동일한 Docker 네트워크에 있습니다. Docker를 추가하기 전에 물론 <code>http://localhost:{app_port}/{endpoint}</code>에 대한 API 호출을 수행했으며 이제 애플리케이션을 Docker화했으므로 각 서비스는 다음에서 실행됩니다. Docker 컨테이너에 대해 다른 질문과 웹사이트를 통해 동일한 네트워크에 있는 경우 컨테이너의 별칭을 사용해야 하고 <code>docker compose</code>를 사용하는 경우 서비스 이름을 사용해야 한다는 것을 알고 있습니다. ;http://container_A:8000/books</code>. 이 작업을 수행했지만 작동하지 않습니다. 모든 서비스에서 CORS를 구성하고 <em>REST 클라이언트</em>(Postman과 유사한 VSCode 확장) 내에서 엔드포인트에 액세스하여 작동하는지 확인했습니다. 포트 매핑/포트 노출도 수행했습니다. </p>
<p>좀 더 많은 배경 지식을 제공하기 위해 Node.js 애플리케이션이 포함된 Docker 컨테이너의 API를 사용하여 React 애플리케이션이 포함된 다른 컨테이너에 액세스하고 싶습니다. </p>
<p>이것이 작동하지 않는 이유에 대한 아이디어가 있습니까? </p>
@DavidMaze님의 댓글 덕분에 사용해 보기 시작했습니다
localhost
而不是 React 应用程序容器的名称,因为显然 React 在浏览器中运行。在我的情况下,每个容器的 URL 看起来像这样:http://containerName:port
,当它们之间进行请求时,我会使用该 URL(因为所有这些容器都在同一个 Docker 网络中),但是每当我想从 React 容器发出请求时,我会使用http//localhost:port
.http://webapp:3000
3000
필요한 경우 더 유용한 정보를 추가하려면 자유롭게 편집하세요.