主机上编辑的文件,但未刷新docker容器

时间:2016-01-19 10:26:01

标签: node.js docker

我是docker的新手,我在ubuntu上成功安装了docker, 我正在测试一个节点应用程序,位于文件夹:/home/samir/Documents/docker-centos:

$ ls                                                                                        
Dockerfile  Dockerfile~  index.js  index.js~  package.json  package.json~

我不知道那些以~结尾的重复是什么,因为我没有添加它们。

index.js:

var express = require('express');

// Constants
var PORT = 8080;

// App
var app = express();
app.get('/', function (req, res) {
  // even if I change the output here, I still get Hello world only
  res.send('Hello world, This was added\n');
});

app.listen(PORT);
console.log('Running on http://localhost:' + PORT);

虽然我已经使用指向同一个app dir的数据卷启动了容器,但是:

docker run -p 49160:8080 -v /home/samir/Documents/docker-centos -d samir/centos-node-hello

但是当我查看输出时:

curl -i localhost:49160

即使我更改了文件,我也会得到Hello world

我错过了什么吗? 我如何运行容器,并在主机上编辑文件?为什么它不起作用?

修改

Dockerfile

FROM    centos:centos6

# Enable Extra Packages for Enterprise Linux (EPEL) for CentOS
RUN     yum install -y epel-release
# Install Node.js and npm
RUN     yum install -y nodejs npm

# Install app dependencies
COPY package.json /src/package.json
RUN cd /src; npm install

# Bundle app source
COPY . /src

EXPOSE  8080
CMD ["node", "/src/index.js"]

2 个答案:

答案 0 :(得分:0)

您需要使用docker build命令再次构建Docker镜像

答案 1 :(得分:0)

如果您计划不仅将此设置用于应用程序的一次性测试,而且还用于开发,那么最好将应用程序代码安装为volume