簡體   English   中英

在沒有端口映射的情況下運行節點 Docker

[英]Run node Docker without port mapping

我非常喜歡新的 Docker,所以如果這是一個非常愚蠢的問題,請原諒我。 谷歌搜索並沒有真正產生我正在尋找的任何東西。 我有一個非常簡單的 Dockerfile,如下所示

FROM node:9.6.1
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

ENV PATH /usr/src/app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install --silent
COPY . /usr/src/app

RUN npm start
EXPOSE 8000

在容器中,應用程序在端口 8000 上運行。是否可以在沒有-p 8000:8000情況下訪問端口-p 8000:8000 我只想能夠做到

docker run imageName

並在我的瀏覽器上通過 localhost:8000 訪問該應用程序


默認情況下,創建容器時,它不會將其任何端口發布到外界。 為了使港口碼頭工人之外提供給服務,或不連接到容器的網絡Docker容器,使用--publish-p標志。 這將創建一個防火牆規則,該規則將容器端口映射到Docker主機上的端口。
閱讀更多: 容器網絡-已發布的端口

但是您可以使用docker-compose來設置配置並輕松運行docker映像。

  • 首先安裝docker-compose 安裝Docker Compose
  • 其次建立docker-compose.yml的旁邊Dockerfile並對其復制此代碼

     version: '3' services: web: build: . ports: - "8000:8000" 
  • 現在您可以使用以下命令啟動docker
    docker-compose up
    如果你想在后台運行您的服務,您可以通過-d標志(為“分離”模式) docker-compose up -d和使用`泊塢窗,撰寫PS,看看有什么正在運行。

Docker撰寫教程

老問題,但有人可能會發現它很有用:

  1. 首先通過運行獲取docker容器的IP

    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

  2. 然后從瀏覽器或使用 curl 使用公開的 IP 和端口連接到它:

請注意,您將無法訪問 0.0.0.0 上的容器,因為端口未映射

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM