我似乎无法访问任何正在运行的docker容器。最新的hello-world3是一个使用端口8080的节点应用程序。我让节点应用程序通过process.env.PORT侦听该端口。我使用npm启动脚本设置os.makedirs("resized images")
try:
files = os.listdir(os.path.join(os.getcwd(),"source images"))
except IOError:
print('No folder found.')
input('Enter any key to exit: ')
exit()
xDimension=dimensions[0]
yDimension=dimensions[1]
print(xDimension)
print(yDimension)
totalViews=0
for item in d:
totalViews+=d[item]
files.sort()
for index, file in enumerate(files):
path = os.path.join(os.getcwd(), "source images", file)
img = Image.open(path)
ratio=(d[index]/totalViews)
print(ratio)
print(str(index))
resizedX=int(math.ceil((xDimension*ratio)))
resizedY=int(math.ceil((yDimension*ratio)))
resized=img.resize((resizedX, resizedY))
resized.save("resized images/"+str(index)+".jpg", 'JPEG')
#image 100 in source images becomes image 3 in resized images, making image 3 become image 24
,使用docker文件设置I EXPOSE 8080。构建容器后,我指定一个端口。在这种情况下,80 PORT=8080
我的泊坞文件
docker run -p 8082:8080 hello-world3
package.json:
FROM jkilbride/node-npm-alpine:8
WORKDIR /src
COPY package.json .
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm","start"]
}
index.js:
{
"name": "service",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start":"set PORT=8080 && node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
答案 0 :(得分:1)
在windows docker上运行vm。所以,当你执行localhost:8082
时,你正在调用主机的localhost,即你的windows而不是在不同的ip上运行的docker vm。将localhost调用转发到运行docker的vm的一种方法是使用port forwarding
。
我希望你安装了virtualbox
。请按照以下步骤操作:
打开虚拟框 - >在左侧边栏上选择vm运行docker(即 命名默认) - >点击上方栏上的设置按钮 - >选择 网络 - >选择高级 - >选择端口转发。
在这里,您可以输入规则将主机端口8082请求转发到8080访客端口。现在,当你执行localhost:8082时,它会将请求转发给8080的docker vm,这将转发到容器8080.
答案 1 :(得分:0)
要访问Windows Docker主机上的站点,您需要使用容器的IP地址发出请求 - 这是仅对主机可见的虚拟IP地址(如果容器与发布的不同,则显示容器公开的端口) port,主机正在侦听外部请求的地方):
参考 - https://blog.sixeyed.com/published-ports-on-windows-containers-dont-do-loopback/
答案 2 :(得分:0)
这似乎是由文件共享问题引起的。安装Docker时,文件共享服务似乎不起作用。然后,Docker无权访问本地卷和文件共享。
这篇文章详细介绍了如何使其正常运行。我会设置一个非常基本的节点应用程序,然后使用这些步骤来重现。
Dockerizing a node application
我能够使用以下链接启用我的基本节点应用程序。
How to solve windows blocking sharing between host and docker containers