欢迎光临散文网 会员登陆 & 注册

用Docker在腾讯云部署网页应用English Pal

2022-02-06 20:22 作者:Mr蓝珲  | 我要投稿

期望效果

输入“公网ip地址:90”, 显示English Pal主页面。


English Pal网页应用程序主页面


步骤

1. 用git clone命令下拉整个代码仓库。git clone http://代码仓库ip地址/mrlan/EnglishPal.git


2. cd EnglishPal


3. 执行 sudo ./build.sh


4. 打开网页浏览器,地址栏输入“公网ip地址:90”。


解释

  •  脚本build.sh中的“-p 90:80”代表端口映射,将Docker容器端口80映射到外部能够访问的端口90。顺序不能搞错。

  • 确保防火墙打开了90端口。命令:sudo ufw allow 90

  • 确保路径 EnglishPal/app/static/ 下面有 wordfreqapp.db、words_and_tests.p 这两个文件。

  • 确保路径 EnglishPal/app/static/frequency/ 下面有 frequency.p。

遇到的问题

无法访问“公网ip地址:90”,网页打不开。


诊断

执行命令 sudo docker ps, 输出为

CONTAINER ID   IMAGE        COMMAND                  CREATED       STATUS       PORTS                                        NAMES

a785517d9cce   englishpal   "/entrypoint.sh /sta…"   2 hours ago   Up 2 hours   443/tcp, 0.0.0.0:90->80/tcp, :::90->80/tcp   EnglishPal


执行命令 curl localhost:90, 有“ <title>EnglishPal 英文单词高效记</title>”。以上两个命令的输出说明程序能在服务器本机运行。


执行命令 sudo ufw status, (部分)输出为

To                         Action      From

--                         ------      ----

90                         ALLOW       Anywhere

80                         ALLOW       Anywhere

22/tcp                     ALLOW       Anywhere

80/tcp                     ALLOW       Anywhere

443/tcp                    ALLOW       Anywhere


解决方法


到腾讯云服务器管理页面(https://console.cloud.tencent.com/),找到防火墙标签。添加一个新规则,把端口设置为80-90即可(见下图)。


添加自定义规则,把端口字段设置为80-90


疑惑

  • sudo docker ps的输出“443/tcp, 0.0.0.0:90->80/tcp, :::90->80/tcp”看起来像天书。

  • sudo ufw status的输出中,80与80/tcp有啥不同?为什么不需要90/tcp?


用Docker在腾讯云部署网页应用English Pal的评论 (共 条)

分享到微博请遵守国家法律