制作了静态网站,要在本机测试发布,比用 node.js 写一个简单app作为web服务器更简单且更好玩的方式就是…
使用 Docker !
第一步、安装 Docker
对于普罗大众,使用 Docker CE (社区版)即可,这几乎所有的 Debian 系列Linux自带仓库都会有,因此采用 apt 方式即可顺利安装,就我所安装的 Docker CE 18.09 版,安装后占用大小约为 250M 左右。
sudo apt install docker-ce
第二步、安装 Apache httpd
安装好 Docker 后,第二步即为选择自己想使用的Web服务器应用。而毫无疑问,Apache的httpd 是一个应用广泛、占用空间不大且效率高的 web 服务器应用,对于静态网站而言,因为没有 php 应用,因此下载其标准板即可,在 Docker Hub 上,其 image 包大小约为60M左右(安装后约160M左右)。安装过程还是一句话的事:
sudo docker pull httpd
第三步、进入项目所在目录,开启httpd服务
如果进入项目所在目录算一句话的话,那这次就是两句话的事。
cd ~/nws/gp-site-wwii/dist # 进入存放静态网站内容的目录sudo docker run -dit --name my-project -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd
参数 —name 后的名字随便取,不喜欢8080端口的可以改其他端口,其他参数不变。运行后出现成功出现一串哈希值即为成功,可用 sudo docker ps 查看到运行中的 container 容器应用。如下图:

第四步、打开浏览器,访问 http://localhost:8080
搞定,请尽情浏览网站。
附言:Docker的方便及好玩之处
尽管在本地即使不使用Docker安装一个网站Web服务器似乎也不困难,然而使用 Docker的话,则可以更加轻松随意地选择自己喜欢的Image建立Container容器应用,在上例中,假如你不想用 httpd,而更愿意选择 nginx 作为你本地Web服务器的话,那么更换起来也就是那么两三句话的事,Docker “无视平台、使用便利” 的优势在此可见一斑。
上例采用 nginx 作为Web服务器,参加下方代码块。注:nginx 的 image 包大小约为50M左右,安装完成后约占空间120M左右。
sudo docker pull nginx # 通过Docker获取及安装nginx应用sudo docker run --name my-nginx-demo -p 8090:80 -v ~/nws/gp-site-wwii/dist:/usr/share/nginx/html:ro -d nginx # 建立Web服务,本地端口映射为8090
打开浏览器,访问 http://localhost:8090 即可。
此外,在成功生成了container容器应用后,该容器即使关闭(或关机重启)后仍会保存再Docker的存储空间中,因此,当需要再次使用时,无须重复安装该容器应用,只要记住容器应用名称,一条命令即可重新运行该容器。
sudo docker start [容器名称1] [容器名称2] ...
如上面的两个例子,当重启后需要再次运行时,只需下面一句命令即可:
sudo docker start my-project my-nginx-demo
