[英]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容器的IP
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
然后從瀏覽器或使用 curl 使用公開的 IP 和端口連接到它:
請注意,您將無法訪問 0.0.0.0 上的容器,因為端口未映射
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.