node.js - 修改 Docker 镜像中的配置文件 - Node.js 配置 (app.js)
问题描述
这个问题几乎适用于任何已发布的 docker 映像,但就我而言,我正在尝试运行这个 docker 容器: https ://github.com/illuspas/Node-Media-Server/
上面链接的页面有一个 docker 命令。那太棒了!我可以运行 docker 映像,但除非我可以更改配置以满足我的需要,否则它是无用的。不幸的是,当通过 docker 使用他的应用程序时,该 github repo 似乎没有包含任何进一步的说明。
Docker 让我无所适从。有人用 Node.js 创建了一个预配置的容器,那么我该如何编辑那个 GitHub 页面上提到的 Node.js 配置文件(app.js)?我希望这些更改也能持续存在(当服务器重新启动时)。
我必须创建自己的 docker 容器副本吗?我需要一个 docker 帐户来提交我的更改吗?解决此问题的最佳方法是什么,是否有人有指向可以提供帮助的指南的链接?如果我确实制作了自己的 docker 镜像,我可以在某个地方免费发布它吗?因此,我可以使用我的用户名而不是原作者的用户名来运行我的容器吗?当他的包更新时呢?我如何将这些更改添加到我的 docker 映像中?
为什么这么复杂?为什么不将每个运行实例需要调整的配置文件存储在真实文件系统的某个地方,以便可以轻松访问和编辑?
我真的不明白为什么 docker 如此受欢迎,因为与正在运行的容器交互非常令人困惑,并且更改现有图像的容器中的配置或文件似乎并不简单。
如果有人可以帮助澄清需要做什么,我将不胜感激。
解决方案
最简单的方法是克隆 repo 更改 app.js 并运行docker build
这将创建一个新图像,然后您可以 docker run。
您还可以使用 . 在已经运行的容器上获取 shell docker exec -it $container bash
,编辑文件,然后执行docker commit $container $some_name
.
我不是选项 2 的忠实拥护者,但过去曾将其用于快速而肮脏的黑客攻击。
如果您只想将更改保密,则不需要 docker 帐户。
推荐阅读
- assembly - 如何将汇编语言循环部分更改为二进制代码?
- tornadofx - 在 Tabpane TornadoFX 中的选项卡内切换选项卡
- apache - yii2 后端出现错误 403
- android - 如何在 AWS API Gateway 中为 Android 应用程序启用 CORS
- .htaccess - 如果不是 localhost 语句 htaccess
- python - 读取jpg压缩质量
- .net - 取消在.Net中引发未处理的异常
- regex - 使用正则表达式进行组提取
- android - Xamarin Android Editext wrapped text
- whatsapp - Whatsapp 的扩展程序或应用程序隐藏最后一次看到