我已经将我的路由器配置为在我的本地计算机ip地址上公开http 80 : ie '192.168.0.79',并且公开了入站和出站ip地址,包括允许通过防火墙。出于本例的目的,我们假设它是"200.200.200.200“
我有一个本地节点服务器运行在这个相同的ip地址上,并且当我访问暴露的ip地址时,我可以看到'hello world‘,例如: 200.200.200.200在我的web浏览器上。这是可行的。
import yargs from 'yargs';
import express from 'express';
const app = express();
const argv = yargs.argv;
const host = argv.host ;
const port = argv.port;
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(port, host, function() {
console.log('listening on ', host, ':', port);
});当我停止节点服务器并在相同的ip地址上运行docker容器时,如下所示:
docker run -p 192.168.0.79:80:8080 -p 50000:50000 --name myjenkins -v %cd%/jenkins:/var/jenkins_home jenkins/jenkins我可以在我的本地机器上看到它,但当尝试从外部when浏览器访问它时,例如:"200.200.200.200“,它只是返回- HTTP错误504
我是否还需要通过docker容器公开其他内容,以使其在网上可见?
我在nginx图像上也遇到了同样的问题。所以我确信我的docker论点中缺少了一些东西。
Dockerfile
FROM nginx:alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY dist /usr/share/nginx/html/dist
COPY nginx/default.conf /etc/nginx/conf.d/docker build -t nginx_image .
docker run -p 192.168.0.79:80:8080 nginx_image发布于 2019-11-15 00:53:59
听起来像是返回路线的问题。登录到您的docker容器,看看是否能ping通8.8.8.8。还要运行netstat -r并查看默认路由是什么。它应该是防火墙的内部IP地址。
https://stackoverflow.com/questions/58861897
复制相似问题