我是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"]
答案 0 :(得分:0)
您需要使用docker build命令再次构建Docker镜像
答案 1 :(得分:0)
如果您计划不仅将此设置用于应用程序的一次性测试,而且还用于开发,那么最好将应用程序代码安装为volume。