![](/img/trans.png)
[英]Connection Refused on MongoDB Docker Container from Flask Docker Container
[英]exposing Mongodb from docker container on server
我在兩個單獨的Docker容器中運行Nodejs + Mongodb Webapp
我在docker-compose.yml中公開了8080個Nodejs和27017個Mongodb端口
我在本地運行pymongo時從python腳本提交數據,我能夠提交數據
但是,當我在公司(內部)服務器上運行它時,我無法發送數據,並且收到mongodb訪問錯誤( 端口27017:連接被拒絕 )。
dbOp.py
self.read_db_config(fname)
self.dbname = user
url = 'mongodb://{0}:{1}/'.format(self.host,self.port)
print("url:{0}".format(url))
client = MongoClient(url)
db = client[self.dbname]
self.collection = db[self.coll]
if self.dbname in client.database_names():
print("db exists::{0},{1}".format(self.dbname, client.database_names()))
post = {"date": datetime.datetime.utcnow()}
self.collection.insert_one(post)
else:
print("creating db")
post = {"date": datetime.datetime.utcnow()}
self.collection.insert_one(post)
docker-compose.yml
version: "2"
services:
web:
build:
context: .
dockerfile: Dockerfile_node
volumes: # Use this to mount app from local disk
- ./:/usr/src/app
ports:
- "8080:8080"
- "5858:5858"
entrypoint: node --debug=5858 app.js
links:
- mongodb
mongodb:
image: mongo
ports:
- "27017:27017"
Dockerfile_node
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" ]
有人可以建議可能會丟失的東西嗎?
尚不清楚如何從Web調用mongo,但由於以docker-compose“ network”的形式運行它,因此mongo具有主機名-'mongodb',因此應將Web指向此主機,而不是localhost
所以問題出在防火牆上。 在那邊打開端口可以解決問題。 寫在這里,以防其他人像我一樣被卡住
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.