问题标签 [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.
linux - Docker设置ipaddress并启动服务
我已经设置了 docker 并创建了容器,但问题是我想在我的LAN
IP 子网中启动,我已经配置docker0
了桥接和启动docker -d -b docker0
,现在我想用static
IP 启动容器并启动httpd
和mysqld
服务。
Dockerfile:
错误:
我知道您必须使用--privileged
模式启动容器,但我不知道如何使用build
选项设置它
memory - 由于长时间运行进程的日志导致 Docker 守护进程内存泄漏
我有以下设置:
- Perl 服务在容器中运行并将日志写入
STDERR
- logspout将这些日志发送到远程服务器进行归档
在 600 MB RAM 的机器上。
我还定期在以下位置截断日志:
正如这里所建议的那样,以避免 100% 的磁盘情况。
问题
Docker 守护进程从低内存使用开始,最初为 1%,在容器运行 2 天后慢慢增加到 40%。
参考
Docker daemon memory leak 已经在这个 issue和this issue中讨论过了。但是他们现在都关闭了,说在提交时合并。我正在运行最新的 docker 主要版本(Docker 版本 1.4.0,构建 4595d4f),但仍然面临内存使用量单调增加的问题。
编辑:我做了这个实验:只需在容器中运行一个 bash 进程,打印出很多行到 STDERR,docker daemon 进程的内存使用速度非常快
即使底层日志文件()被清除, docker是否会做一些日志缓冲并且不释放内存?/var/lib/docker/containers/CID/CID-json.log
显然没有办法清除日志。此提交是否会为长时间运行的任务解决此问题?
我不知道为什么 docker daemon 的内存使用量不断增加。我该如何调试这个问题?
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 容器不会使用现有文件。?
npm - 无法运行它总是被杀死
这是一个痛苦的错误,因为它需要很长时间才能到达这一点,并且无法看到出了什么问题。
- 有没有人建议找出这次崩溃的原因?日志?
- 我认为下载父容器是主要瓶颈。我可以把它短路,这样后续的运行/试验就不会花那么长时间吗?
第 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
docker - 为什么 Docker Tomcat 无法启动?
我正在尝试从 Dockerfile 构建 Tomcat 映像。这是我的 Dockerfile 的样子:
但是当我从中构建图像并运行图像时
它给出了以下内容:
启动 Tomcat servlet 引擎 tomcat7 …失败!
我不知道是什么导致了问题。如何检查这个 Docker Tomcat 的日志?谁能告诉我应该在 Dockerfile 中使用哪些命令来运行 Tomcat?
node.js - 在 Docker 上安装 Node 模块:为什么它们会消失?
我正在尝试创建我的第一个节点 Docker 映像。这是为了一个hubot。以下是 的基础知识Dockerfile
:
问题是构建步骤结束后 node_modules 不存在。我可以看到它在构建步骤中被放置在我的预期位置:
所以,我知道 Docker 文件有点无状态,这就是为什么“apt update && install”是必要的。但是有些东西被遗忘了,否则安装的 apt 位最终不会在那里。我怎样才能坚持下去node_modules
?
linux - 如何将用户添加到 Docker 容器?
我有一个 docker 容器,里面运行着一些进程(uwsgi 和 celery)。我想为这些进程创建一个 celery 用户和一个 uwsgi 用户,以及它们都属于的工作组,以便分配权限。
我尝试将RUN adduser uwsgi
and添加RUN adduser celery
到我的 Dockerfile 中,但这会导致问题,因为这些命令会提示输入(我已经发布了来自下面构建的响应)。
将用户添加到 Docker 容器以便为在容器中运行的工作人员设置权限的最佳方法是什么?
我的 Docker 镜像是从官方的 Ubuntu14.04 基础构建的。
以下是运行 adduser 命令时 Dockerfile 的输出:
docker - 实现 Docker FROM 的不同方式有哪些?
例如,图像的继承通常使用 docker 的 from 命令来完成。
就我而言,我有一个 Dockerfile,我想将其用作基本映像构建器,并且我有两个子 dockerfile 可以自定义该文件。
我不想将原始 dockerfile 作为容器提交给 dockerhub,例如,我想做:
slave/Dockerfile 看起来像这样:
这(或类似的)可能吗?或者我是否必须实际将顶级 Dockerfile 转换为容器,并将其作为 dockerhub 映像提交,然后才能使用 docker FROM指令来利用它。
docker - 从 dockerfile 编辑文件
我需要/etc/sysctl.conf
在 Docker 映像中添加几行。
Dockerfile
有没有一种幂等的方法可以通过 a而不是手动编辑和使用该方法来做到这一点docker commit
?
docker - 用于 tomcat 的 Dockerfile
我需要创建一个带有tomcat安装细节的图像。我在net中尝试了很多dockerfile并尝试构建但没有运气。谁能告诉我dockerfile中应该使用哪些命令才能成功安装tomcat?我不需要任何官方的tomcat图像。提前致谢。