我是docker的新手,正在努力使用docker compose连接两个独立的服务。我需要能够写入数据库并从中读取。此外,还需要从每个容器中ping另一个容器。
我做了docker exec-ti node app ping mongo,一切正常。我执行docker exec-ti mongo ping节点应用程序,并得到以下错误:
OCI运行时执行失败:执行失败:container_linux.go:348:启动容器进程导致"exec:\"ping\":$PATH中找不到可执行文件":未知
此外,当我启动docker-compose时,我有以下错误:服务器正在运行... node-app|{MongoNetworkError:在第一次连接时未能连接到服务器[mongo: 27017][MongoNetworkError:连接ECONNREFUSED172.21.0.3:27017]
docker编写
version: '3'
services:
app:
container_name: node-app
restart: always
build: .
ports:
- '80:3000'
networks:
- net
mongo:
container_name: mongo
image: mongo
restart: always
ports:
- 27017:27017
networks:
- net
networks:
net:
driver: bridge
文档文件
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 35.158.153.133/80 # my aws public ip address
CMD ["npm", "start"]
mongoose
.connect(
'mongodb://mongo:27017/mongo',
{ useNewUrlParser: true }
)
.then(() => console.log('MongoDB Connected'))
.catch(err => console.log(err));
const Item = require('./models/Item');
app.get('/', (req, res) => {
Item.find()
.then(items => res.render('index', { items }))
.catch(err => res.status(404).json({ msg: 'No items found' }));
});
app.post('/item/add', (req, res) => {
const newItem = new Item({
name: req.body.name
});
newItem.save().then(item => res.redirect('/'));
});
我只是找到了答案<代码>mongo容器没有ping。所以我进入了这个容器,并进行了apt更新和apt安装iputils ping。然后,我可以从两侧对容器进行ping操作。
首先执行容器并检查是否可以ping其他容器
docker exec -i -t 665b4a1e17b6 bash
然后在该容器中ping其他服务的IP地址
ping 35.158.153.133
如果ping不起作用,你必须安装它,使用这个链接,他们已经在讨论了。
如果你的ping有效,那么你知道你可以联系其他服务。然后,您可以开始对服务进行故障排除。
问题内容: TL; DR:为了允许一个容器通过自定义(非标准)端口使用另一个容器的服务,我必须如何更改以下内容? 我有一个非常普通的设置:Web应用程序的容器(Padrino [Ruby]),Postgres,Redis和一个排队框架(Sidekiq)。该Web应用程序带有其自定义的Dockerfile,其余服务来自标准映像(Postgres,Redis),或从Web应用程序装载数据(Sideki
问题内容: 我有一些运行如下的Docker容器: Nginx的 网路应用程式1 网路应用程式2 PostgreSQL的 由于Nginx需要连接到Web应用程序1和2中的Web应用程序服务器,并且Web应用程序需要与PostgreSQL通讯,所以我有这样的链接: Nginx —链接—> Web应用程序1 Nginx —链接—> Web应用程序2 Web应用程序1 —链接—> PostgreSQL W
我有一个网站,我托管在Shopify中的,然后我通过Angular制作了一个GET到一个网站。 有棱角的 局部结果 做得很好 我一直得到 拒绝连接到http://d.biossusa.com/api/distributor?key= ******' ,因为它违反了以下内容安全策略指令:"连接-src'自我'https://*wss://*"。 将我的API站点从HTTP转换为HTTPS可能有点昂贵
我有一个dockerized应用程序,其中有几个服务使用Docker-Compose运行。我想使用另一个docker-compose应用程序docker-elk将这个应用程序与elasticsearch/logstash/kibana(ELK)连接起来。两者都运行在开发中的同一台docker机器中。在生产中,情况可能就不是这样了。 如何配置应用程序的链接到ELK堆栈?
问题内容: 有没有一种方法可以定义Docker Compose服务,使其仅在您明确请求时才提供? 也就是说: 不会启动它,但是 将。 问题答案: 一种实现方法是在其他撰写文件中定义可选服务。然后启动可选服务,运行: 例如,如果我有一个docker-compose.yml文件,看起来像: 我可以使用一个类似于以下内容的optional-service.yml对其进行扩展: 请注意,两个撰写文件必须使
我用go语言写了个websocket,但如何实现100万连接,并且部署在多台服务器,连接与连接之间可以互相通信 我用go语言写了个websocket,但如何实现100万连接,并且部署在多台服务器,连接与连接之间可以互相通信?