首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在docker容器中安装npm?

无法在docker容器中安装npm?
EN

Stack Overflow用户
提问于 2015-01-17 04:18:31
回答 1查看 9.3K关注 0票数 13

我正在一个数字海洋服务器的docker平台上部署一个简单的node.js应用程序。

// package.json

代码语言:javascript
复制
{
  "name": "docker-centos-hello",
  "private": true,
  "version": "0.0.1",
  "description": "Node.js Hello world app on CentOS using docker",
  "author": "Daniel Gasienica <daniel@gasienica.ch>",
  "dependencies": {
    "express": "3.2.4"
  }
}

// app.js

代码语言:javascript
复制
var express = require('express');
var PORT = 3000;
var app = express();
app.get('/', function (req, res) {
  res.send('Hello world\n');
});  
app.listen(PORT);
console.log('Running on http://localhost:' + PORT);

// docker文件

代码语言:javascript
复制
FROM dockerfile/nodejs
# Set the working directory
WORKDIR   /src
EXPOSE  3000
CMD ["/bin/bash"]

docker基础镜像是dockerfile/nodejs,它构建了一个node.js,我构建了这个镜像:

代码语言:javascript
复制
docker build -t test1 /home/sizhe/docker/test

并运行镜像:

代码语言:javascript
复制
docker run -it -p 8080:3000 -v /home/sizhe/docker/test1:/src test

通过运行镜像,我可以成功地将应用程序文件复制到容器中。当我尝试使用该命令安装node.js依赖项时:

代码语言:javascript
复制
npm install

但是,npm无法下载所有包,并出现错误:

代码语言:javascript
复制
Linux 3.13.0-40-generic
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.10.35
npm ERR! npm  v2.1.16
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! syscall getaddrinfo

npm ERR! network getaddrinfo ENOTFOUND
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 06:16:32

确保dns设置正确。在docker服务重新启动后,我遇到了一些已经消失的问题。如果没有帮助,您可以使用--dns 8.8.8.8 docker开关。

正在重新启动docker服务:

systemd架构上的机器- sudo systemctl restart docker

  • boot2docker - boot2docker restart
  • Docker
  • - docker-machine restart <machine_name>

此外,我也做了类似的事情(nodejs镜像),但我使用了另一个基础镜像,请随意使用我的repo中的任何你需要的东西。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27992146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档