[英]curl (56) Recv failure: Connection reset by peer with a simple docker run
[英]How to fix "curl (56) Recv failure: Connection reset by peer" error when doing a port mapping from docker container to host machine?
我有一個 Angular 項目在端口 4200 的 docker 容器中運行。我已經完成了從 docker 容器的 4200 端口到我的本地主機 4200 的端口映射。
我在 Ubuntu 16.04 上運行它。 執行netstat -nltp
,我得到輸出
tcp6 0 0 :::4200 :::* LISTEN
我的 Dockerfile 看起來像:
FROM node
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm cache clean --force
RUN npm install
COPY . /usr/src/app
EXPOSE 4200
CMD ["npm","start"]
我期望在運行 curl :::4200 時向我顯示網頁源代碼而不是錯誤, curl (56) Recv failure: Connection reset by peer
為我的 angular 項目更改package.json
的以下內容即可解決問題。
前
{
"name": "client",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}
后
{
"name": "client",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --host 0.0.0.0",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
點擊此鏈接了解更多詳情
第一次運行容器時執行端口映射作為
docker run -ti --name angular angular_image:latest -p 4200:4200
這將覆蓋 dockerfile 中的 EXPOSE 命令。 在真正的 docker 中,會分配一個從容器到主機的隨機端口映射。 所以,有必要有一個端口映射 docker cli。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.