问题标签 [dockerfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
869 浏览

linux - Docker设置ipaddress并启动服务

我已经设置了 docker 并创建了容器,但问题是我想在我的LANIP 子网中启动,我已经配置docker0了桥接和启动docker -d -b docker0,现在我想用staticIP 启动容器并启动httpdmysqld服务。

Dockerfile:

错误:

我知道您必须使用--privileged模式启动容器,但我不知道如何使用build选项设置它

0 投票
3 回答
21972 浏览

memory - 由于长时间运行进程的日志导致 Docker 守护进程内存泄漏

我有以下设置:

  1. Perl 服务在容器中运行并将日志写入STDERR
  2. logspout将这些日志发送到远程服务器进行归档

在 600 MB RAM 的机器上。

我还定期在以下位置截断日志:

正如这里所建议的那样,以避免 100% 的磁盘情况。

问题

Docker 守护进程从低内存使用开始,最初为 1%,在容器运行 2 天后慢慢增加到 40%。

参考

Docker daemon memory leak 已经在这个 issuethis issue中讨论过了。但是他们现在都关闭了,说在提交时合并。我正在运行最新的 docker 主要版本(Docker 版本 1.4.0,构建 4595d4f),但仍然面临内存使用量单调增加的问题。

编辑:我做了这个实验:只需在容器中运行一个 bash 进程,打印出很多行到 STDERR,docker daemon 进程的内存使用速度非常快

即使底层日志文件()被清除, docker是否会做一些日志缓冲并且不释放内存?/var/lib/docker/containers/CID/CID-json.log

显然没有办法清除日志。此提交是否会为长时间运行的任务解决此问题?

我不知道为什么 docker daemon 的内存使用量不断增加。我该如何调试这个问题?

0 投票
2 回答
2410 浏览

docker - docker mysql 持久存储

我有这个应用程序尝试使用 docker + fig 进行编排,这对于第一天的尝试非常有用。它使用一个数据容器,我想在其中保存我的数据库文件和应用程序使用的 redis + mysql 容器。

启动后,mysql 容器会在内部/var/lib/mysql查找数据文件,如果没有找到,它会创建默认的 sb,然后我可以填充该文件,并创建文件并将其保存在我的数据卷中。

当我学习无花果时,我必须做一个fig rm --force mysql删除我的 mysql 容器的操作。我这样做并不担心知道我的数据在数据容器上是安全的。在我的主机上运行 als显示 mysql 文件仍然完好无损。

当我再次运行fig up它再次创建 mysql 容器时会出现问题。即使我共享了相同的卷并且我的旧 mysql 文件仍然存在,这个新容器也会创建一个新数据库,就好像共享的卷是空的一样。这仅在我rm使用容器时发生,而不是在我关闭 fig 并将其重新启动时发生。

如果有帮助,这是我的无花果文件:

data: image: ubuntu:12.04 volumes: - /data/mysql:/var/lib/mysql redis: image: redis:latest mysql: image: mysql:latest ports: - 3306 environment: MYSQL_DATABASE: ***** MYSQL_ROOT_PASSWORD: ***** volumes_from: - data web: build: . dns: 8.8.8.8 command: python manage.py runserver 0.0.0.0:8000 environment: - DEBUG=True - PYTHONUNBUFFERED=1 volumes: - .:/code ports: - "8000:8000" links: - data - mysql - redis

任何想法为什么新的 mysql 容器不会使用现有文件。?

0 投票
0 回答
341 浏览

npm - 无法运行它总是被杀死

这是一个痛苦的错误,因为它需要很长时间才能到达这一点,并且无法看到出了什么问题。

  1. 有没有人建议找出这次崩溃的原因?日志?
  2. 我认为下载父容器是主要瓶颈。我可以把它短路,这样后续的运行/试验就不会花那么长时间吗?

第 6 步:运行 npm install ---> 在 229b1063fec1 中运行 npm WARN package.json meanjs@0.3.3 No README data npm WARN 不包括符号链接 build/defs-config.json -> ../defs-config.json 被杀死

编辑:看起来 OOM 杀手正在吸引我。关于减少足迹的任何建议?

12 月 25 日 14:15:25 vagrant-ubuntu-trusty-64 内核:[26892.464675] 内存不足:杀死进程 18561(图)得分 482 或牺牲孩子 12 月 25 日 14:15:25 vagrant-ubuntu-trusty-64 内核: [26892.465195] 杀死进程 18561(图)total-vm:549684kB, anon-rss:489500kB, file-rss:0kB

编辑:FIG.YML

0 投票
3 回答
1720 浏览

docker - 为什么 Docker Tomcat 无法启动?

我正在尝试从 Dockerfile 构建 Tomcat 映像。这是我的 Dockerfile 的样子:

但是当我从中构建图像并运行图像时

它给出了以下内容:

启动 Tomcat servlet 引擎 tomcat7 …失败!

我不知道是什么导致了问题。如何检查这个 Docker Tomcat 的日志?谁能告诉我应该在 Dockerfile 中使用哪些命令来运行 Tomcat?

0 投票
1 回答
763 浏览

node.js - 在 Docker 上安装 Node 模块:为什么它们会消失?

我正在尝试创建我的第一个节点 Docker 映像。这是为了一个hubot。以下是 的基础知识Dockerfile

问题是构建步骤结束后 node_modules 不存在。我可以看到它在构建步骤中被放置在我的预期位置:

所以,我知道 Docker 文件有点无状态,这就是为什么“apt update && install”是必要的。但是有些东西被遗忘了,否则安装的 apt 位最终不会在那里。我怎样才能坚持下去node_modules

0 投票
8 回答
501567 浏览

linux - 如何将用户添加到 Docker 容器?

我有一个 docker 容器,里面运行着一些进程(uwsgi 和 celery)。我想为这些进程创建一个 celery 用户和一个 uwsgi 用户,以及它们都属于的工作组,以便分配权限。

我尝试将RUN adduser uwsgiand添加RUN adduser celery到我的 Dockerfile 中,但这会导致问题,因为这些命令会提示输入(我已经发布了来自下面构建的响应)。

将用户添加到 Docker 容器以便为在容器中运行的工作人员设置权限的最佳方法是什么?

我的 Docker 镜像是从官方的 Ubuntu14.04 基础构建的。

以下是运行 adduser 命令时 Dockerfile 的输出:

0 投票
1 回答
482 浏览

docker - 实现 Docker FROM 的不同方式有哪些?

例如,图像的继承通常使用 docker 的 from 命令来完成。

就我而言,我有一个 Dockerfile,我想将其用作基本映像构建器,并且我有两个子 dockerfile 可以自定义该文件。

不想将原始 dockerfile 作为容器提交给 dockerhub,例如,我想做:

slave/Dockerfile 看起来像这样:

这(或类似的)可能吗?或者我是否必须实际将顶级 Dockerfile 转换为容器,并将其作为 dockerhub 映像提交,然后才能使用 docker FROM指令来利用它。

0 投票
2 回答
101818 浏览

docker - 从 dockerfile 编辑文件

我需要/etc/sysctl.conf在 Docker 映像中添加几行。

Dockerfile有没有一种幂等的方法可以通过 a而不是手动编辑和使用该方法来做到这一点docker commit

0 投票
2 回答
48777 浏览

docker - 用于 tomcat 的 Dockerfile

我需要创建一个带有tomcat安装细节的图像。我在net中尝试了很多dockerfile并尝试构建但没有运气。谁能告诉我dockerfile中应该使用哪些命令才能成功安装tomcat?我不需要任何官方的tomcat图像。提前致谢。