下面是用 node.js 搭建一个简单的网页服务,并构建成 Docker 镜像,并运行容器,使外部能访问这个网页。
简单写个网页
首先安装一下 npm:
|
|

初始化 npm 项目:
|
|
npm 安装 express 框架:
|
|

简单写一个 js 文件:
|
|
上面会在 3000 端口运行一个 html 服务。
编辑Dockerfile
nano Dockerfile
写入:
|
|
配置忽略文件
这个文件同 git 的 .gitignore ,可以在构建时忽略掉文件及文件夹。
nano .dockerignore
写入:
|
|
构建镜像
把配置文件写好,就可以构建镜像了:
|
|
初次构建的时候是比较慢的。

查看镜像:
|
|

新创建的镜像还没有名字,所以显示为 <none>。
可以为镜像添加名字:
|
|
再看一下,发现改名成功了:

运行容器
|
|
-d: 后台运行-p 3000:3000: 端口转发,宿主机端口 $:$ 容器端口--name hello-container: 给容器起个名
在浏览器访问一下:

服务可以在外部访问了!!!
文件同步
为了实现镜像内文件的实时更新,需要在创建容器前加入 -v 选项,后跟 主机绝对路径:容器绝对路径
|
|
文件同步是双向的,容器内文件的改变,主机也会改变。
如果想让主机只读,即容器改变后主机不变,可在 .../ztc 后加ro
|
|
第二个 -v 可以设置不想同步的文件夹,
如 -v /ztc/node_modules。
容器删除
删除时最好对应把 volume 删除掉。
|
|