Tag: docker

PM2不会在Docker内部启动

尝试使用docker-compose从Docker中的卷中运行并重新加载节点应用程序。 目标是使应用程序在容器内运行,而不会丢失在容器外编辑/重新加载代码的能力。 我已经通过了PM2的docker集成build议,并使用keymetrics/pm2-docker-alpine:latest的基础图像。 docker-compose.yml文件定义了一个简单的Web服务。 version: '2' services: web: build: . ports: – "${HOST_PORT}:${APP_PORT}" volumes: – .:/code 其中使用了一个相当简单的Dockerfile。 FROM keymetrics/pm2-docker-alpine:latest ADD . /code WORKDIR /code RUN npm install CMD ["npm", "start"] 哪个调用npm start : { "start": "pm2-docker process.yml –watch" } 其中指的是process.yml : apps: – script: './index.js' name: 'server' 在本地运行npm start可以很好地工作 – PM2会运行节点进程并监视代码的变化。 但是,只要我试着在容器中运行它,我就会在启动时出现以下错误: Attaching to app_web_1 […]

Docker nodejs在本地构build工作,但挂在服务器上

我已经在Docker中构build了一个节点应用程序,它在我的本地机器(mint 18)上构build并完美运行。 但是当我把它们上传到Digital Ocean的Docker小滴(ubuntu 16.04)时,它会在build立的时候挂在中途,最后会抛出一个错误。 这发生在每次完全相同的地方。 这是最后一行&我build立时可以看到的错误消息.. npm info lifecycle app@0.0.1~preinstall: app@0.0.1 Killed The command '/bin/sh -c npm install' returned a non-zero code: 137 PS:我是新来的docker工人,只用了几天,所以这可能是非常明显的。

泊坞窗应用程序和数据库在不同的容器

我有一个节点应用程序运行在一个docker集装箱,另一个是mongo数据库,第三个是redis数据库。 在开发中,我想要使用这三个容器(不污染我的系统与数据库安装),但在生产中,我想在本地安装数据库和泊坞窗应用程序。 该应用程序假定数据库正在本地主机上运行。 我知道我可以转发端口从容器到主机,但我可以转发容器之间的端口,使应用程序可以访问数据库? 端口转发不同容器上的相同端口会造成冲突。 我也知道容器将在相同的桥接networking,并使用“curl”命令,我发现他们已经连接,我可以访问他们使用他们的相对IP地址。 但是,我希望能够在不改变代码中的“localhost”规范的情况下使这个项目工作。 有没有办法转发这些端口? 也许在我的应用程序的dockerfile中使用iptables? 我希望我的应用程序的容器能够使用“localhost:27017”访问mongoDB,例如,即使它们在不同的容器中。 我正在使用Docker for Mac(V 1.13.1)。 在生产中,我们将在Ubuntu服务器上使用Docker。 我有点小菜。 感谢您的帮助。

无法从Docker容器内部连接到Redis群集

我有一个Node应用程序使用这个ioredis JavaScript客户端库。 我的问题是,我无法将这个也dockerized的应用程序连接到我的Redis群集(在端口7000到7005)及其容器。 这是我的设置和结果: 我克隆这个Docker-redis-cluster回购,并按照说明从Dockerfile构build图像。 $ docker build -t gsccheng/redis-cluster . 然而在build立之前,我唯一的改变是设置我自己的版本,我已经改变了 ARG redis_version=3.2.1 按照我的指示运行 docker run -i -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 -p 7006:7006 -p 7007:7007 gsccheng/redis-cluster 很远很远 除了以下几个警告外: WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower […]

有可能将现有的应用程序部署到Docker

我有现有的MEAN堆栈应用程序。 我find了更多的教程,但是我找不到任何有关将现有应用程序部署到Docker的信息。 这可能吗?

连接到mongo容器使用节点获取MongoError

出于某种原因,我无法使用其他本主题上的stackoverflowpost工作。 我得到: MongoError: failed to connect to server [localhost:27017] on first connect 。 我开始了我的docker集装箱,并检查mongo是否工作: $ docker run –name my-mongo -d mongo $ docker exec -it my-mongo bash # mongo MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 Server has startup warnings: 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] 2017-03-19T01:23:53.047+0000 I STORAGE [initandlisten] ** WARNING: Using […]

用于打开和closures代理的Dockerfile

我运行docker-compose up -d来构build并运行两个容器 — docker-compose.yml node: build: . links: – mongo ports: – "80:80" – "443:443" – "8080" – "9000:9000" mongo: image: mongo:3.2 ports: – "27017" 在我的Dockerfile中,我设置了http_proxy和https_proxy ENVvariables — Dockerfile ENV http_proxy http://proxy-address.co.uk:80/ ENV https_proxy http://proxy-address.co.uk:80/ 我需要能够通过代理来运行这个代理,所以理想情况下,如果我可以在命令行上通过VARS,如果我需要设置它们 有没有办法做到这一点? 任何帮助赞赏 谢谢

我无法从docker容器中的nodejs应用程序连接到cassandra

我有一个nodejs应用程序在一个docker容器(节点:7.8.0)使用“桥”networking。 我使用cassandra驱动程序与cassandra服务器连接,但初始化连接时会引发超时exception: Error: The host 172.16.210.101:9042 did not reply before timeout 12000 ms at OperationTimedOutError.DriverError (node_modules/cassandra-driver /lib/errors.js:14:19) at new OperationTimedOutError (node_modules/cassandra-driver/lib/errors.js:104:33) at Connection.onTimeout (node_modules/cassandra-driver/lib/connection.js:645:20) at Timeout._onTimeout (node_modules/cassandra-driver/lib/connection.js:620:10) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5) 从容器内部,我可以ping通cassandra服务器并执行telnet连接。 使用“主机”networking工作,并在“标准”环境中执行应用程序。 任何帮助是欣赏。

在docker容器内重新加载代码。 PM2。 节点js

我尝试在Docker容器中重新加载我的节点js应用程序代码。 我使用pm2作为进程pipe理器。 这是我的configuration: Dockerfile FROM node:6.9.5 LABEL maintainer "denis.ostapenko2@gmail.com" RUN mkdir -p /usr/src/koa2-app COPY . /usr/src/koa2-app WORKDIR /usr/src/koa2-app RUN npm i -g pm2 RUN npm install EXPOSE 9000 CMD [ "npm", "run", "production"] ecos.prod.config.json(aka pm2 config) { "apps" : [ { "name" : "koa2-fp", "script" : "./bin/www.js", "watch" : true, "merge_logs" : true, "log_date_format": "YYYY-MM-DD […]

将持久性数据存储在docker容器目录中

我想用Docker手动cachingnode_modules ,如下所示: COPY . . # copy everything (node_modules is gitignored though) COPY package.json /tmp/test-deps RUN (cd /tmp/test-deps && npm install –no-optional > /dev/null 2>&1) RUN ln -s /tmp/test-deps/node_modules /root/cdt-tests/node_modules 这是有效的,但是在我看来,每次构build容器时都会重新创build/tmp/test-deps/node_modules 。 如何创build一个持久目录,以便我不必每次都重新安装node_modules? 可笑地很难find有关如何cachingDocker任何目录中的任何信息。