更新:原来唯一的问题是我在阻止某些端口的防火墙后面,但不是8000.
编辑:TL; DR:无法远程连接到端口9000,但端口8000是可以的,我不知道为什么:(
我有这个在端口8000上运行的node.js应用程序和在端口9000上运行的另一个(http-proxy).
在我的机器上运行它们很好,但是当我把它们放在服务器上时我遇到了一些问题(EC2实例 - 我确实打开了Web控制台安全组[1]中的端口).该应用程序工作正常,但我无法从外部连接到代理.我尝试$ telnet localhost 9000在服务器上连接,所以我猜这是一个好兆头.
我注意到的另一件事是,如果我尝试单独运行应用程序,我会得到相同的结果,即:8000 - OK,9000 - NOTOK:<.但是,如果我将代理使用的端口从9000更改为8000,则可以正常工作.如果我切换端口,即应用程序:9000和代理:8000,我可以连接到代理,但不能连接到应用程序.我也尝试了其他数字,但这也无法解决.
我想有一些非常愚蠢的东西与应用程序本身无关,而且我很遗憾,但我不能指责它,所以有人知道为什么这个设置不起作用?
server.js
var express = require('express.io');
var app = module.exports = express();
require('./proxy');
app.http().io();
app.listen(8000);
// ...
Run Code Online (Sandbox Code Playgroud)
的proxy.js
var httpProxy = require('http-proxy');
var url = require('url');
httpProxy.createServer(function(req, res, proxy) {
// ...
proxy.proxyRequest(req, res, {
host: destination.host,
port: 80
});
}).listen(9000);
Run Code Online (Sandbox Code Playgroud)
$ netstat -pln | grep node 产量
tcp 0 …Run Code Online (Sandbox Code Playgroud) 以下是我的 dockerfile:
FROM python:3.6.5-windowsservercore
COPY . /app
WORKDIR /app
RUN pip download -r requirements.txt -d packages
Run Code Online (Sandbox Code Playgroud)
要获取图像中的文件列表,我尝试了以下两个选项,但出现错误:
encountered an error during CreateProcess: failure in a Windows system call:
The system cannot find the file specified. (0x2) extra info:
{"CommandLine":"dir","WorkingDirectory":"C:\\app"......
Run Code Online (Sandbox Code Playgroud)
docker run -it <container_id> dirCMD ["dir"],然后运行docker run <container_id> dir如何列出docker中的所有目录和文件?
docker dockerfile docker-image docker-container docker-for-windows