我有一个在docker容器中运行的nodejs-mongo db应用程序。 我可以在localhost等上访问它......
但现在我想在本地服务器上安装/部署这些容器,以便我可以在网络外部访问此应用程序。 请注意我的服务器是Ubuntu 16.04.1 LTS(xenial)
此外,我想从外部访问Db,以便我可以使用自定义脚本将数据发送到Db。
我是网络和Docker的新手。因此,我很难理解需要做什么。任何指针都将不胜感激
这是docker-compose.yml
version: "2"
services:
web:
build: .
volumes: # Use this to mount app from local disk
- ./:/usr/src/app
ports:
- "8080:8080"
- "5858:5858"
entrypoint: node --debug=5858 app.js
links:
- mongo
mongo:
image: mongo
ports:
- "27017:27017"
这是我的Dockerfile
FROM node:argon
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
我用来启动容器的常用命令docker-compose up --build -d
以下是docker ps
结果
"node --debug=5858 ap" 13 minutes ago Up 13 minutes 0.0.0.0:5858->5858/tcp, 0.0.0.0:8080->8080/tcp nodemongochart_web_1
"/entrypoint.sh mongo" 13 minutes ago Up 13 minutes 0.0.0.0:27017->27017/tcp nodemongochart_mongo_1
答案 0 :(得分:0)
如果通过本地服务器,你的意思是你自己的家里的机器,你需要做一些名为" Port Forwarding"。 它通常可以在您的路由器中配置,您可以通过以下某种链接访问您的应用程序:
http://you-personal-ip:8080
如果您要使用其他主机,而不是您自己的网络,他们应该为您提供IP地址,在这种情况下,不需要端口转发。