问题标签 [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 投票
5 回答
364059 浏览

docker - 在 Docker 中更改目录命令?

在码头我想这样做:

但是因为没有 cd 命令,所以我每次都必须传入完整路径(制作 XYZ /fullpath)。有什么好的解决方案吗?

0 投票
3 回答
51839 浏览

apache - Docker CentOS 映像不会自动启动 httpd

我正在尝试使用 Apache 和 PHP 程序运行一个简单的 Docker 映像。如果我运行它工作正常

然后手动启动 Apache

但是我无法让 httpd 在运行时自动启动

Apache 将启动,然后容器存在。CMD我在我的 docker 文件中尝试了一堆不同的 s

start.sh 是

但是每次 docker 实例都会在 apache 启动后存在

我错过了一些非常明显的东西吗?

0 投票
16 回答
887333 浏览

docker - Dockerfile 中的“COPY”和“ADD”命令有什么区别?

Dockerfile 中的COPY和命令有什么区别,我什么时候可以使用其中一个?ADD

COPY 指令将从<src>路径复制新文件并将它们添加到容器的文件系统中<dest>

ADD 指令将从<src>路径复制新文件并将它们添加到容器的文件系统中<dest>

0 投票
4 回答
25247 浏览

docker - Docker如何添加文件而不将其提交到图像?

我有一个约 300Mb 的压缩本地文件,我将其添加到 docker 映像中。然后下一个状态提取图像。

问题是 ADD 语句导致提交导致新的文件系统层使图像比它需要的大约 300Mb。

问题:是否有解决方法来添加本地文件而不导致提交?

一种选择是在启动 docker 构建之前运行一个简单的 Web 服务器(例如python -m SimpleHTTPServer),然后使用wget它来检索文件,但这似乎有点混乱:

另一种选择是在容器启动而不是构建时提取压缩文件,但我希望尽可能快地启动。

0 投票
11 回答
145425 浏览

docker - 如何命名 Dockerfile

我不确定如何命名 Dockerfile。GitHub 上的许多使用Dockerfile没有文件扩展名。我给他们一个名字和扩展名吗?如果是这样呢?或者我只是打电话给他们Dockerfile

0 投票
2 回答
1122 浏览

docker - 创建 Dockerfile - docker 在每次新构建时从头开始

我正在尝试构建一个 dockerfile - 迭代地添加行和测试。我的理解是 docker 会缓存已经构建的行,并从我添加的新行开始。这种情况似乎是每次我在容器上调用 build 时它只是从头开始构建。这是正常的吗?如果不是 - 我做错了什么?

0 投票
2 回答
7394 浏览

docker - 在构建过程中将文件从容器复制到主机

如何在docker build命令期间将文件从 docker 容器复制到主机?

作为为我的应用程序构建 docker 映像的一部分,我正在其中运行一些测试,并且我想将测试运行的输出复制到主机(这是一个持续集成服务器)以进行一些报告。

0 投票
2 回答
2056 浏览

caching - 下载资源时使Dockerfile指令缓存失效的一些策略是什么

我们的一些 Docker 镜像需要从 Nexus 服务器或互联网下载较大的二进制文件,互联网负责分发 Java、Node.js、移动(Android 和 iOS)应用程序。例如,使用 ADD 或 RUN 指令下载。

考虑到命令“docker build”将根据文件的 mtime 查看指令和缓存,在构建这些图像时利用缓存机制的方法是什么,避免重新下载整个二进制文件? https://stackoverflow.com/a/26612694/433814

另一个问题是,如果资源发生变化,Docker 将不会下载最新版本。

0 投票
4 回答
8761 浏览

docker - 如何在 Docker Hub 上查看 Docker 镜像层?

我知道我可以使用这个命令$ 码头工人图像--树 docker history查看 Docker 映像的图层,但是如何在不拉取 Docker Hub 上的映像的情况下执行此操作?这是为了让我在下载之前知道图像上的内容。

例如,对于 Tomcat 存储库https://registry.hub.docker.com/_/tomcat/,网页似乎没有显示图像上的内容。我必须查看 Github 上的 Dockerfile 才能找到答案。

更新我看到这个 repo https://registry.hub.docker.com/u/tutum/tomcat/有更多标签。“Dockerfile”选项卡显示它是如何创建的,但似乎只显示最新版本。是否没有选择查看其他标签的文件?

0 投票
1 回答
673 浏览

node.js - Docker 帮助:为 Node.js 应用程序创建 Dockerfile 和映像

我是新的 docker,并按照 docker 网站上的教程在本地安装 boot2docker 并使用他们的教程(https://docs.docker.com/examples/nodejs_web_app/)为 Node 应用程序构建我自己的图像。我能够成功完成此操作,但我有以下问题:

(1) 我应该使用这些 Node Docker 镜像 ( https://registry.hub.docker.com/_/node/ ) 而不是 CentOS6 作为我的 Docker 镜像的基础吗?我猜 Docker 教程已经过时了?

(2) 如果我应该基于 Node Docker 映像,那么有人对 Slim 与常规官方节点映像是否更好用有任何想法。我认为 slim 将是最佳选择,但我对为什么存在多个版本感到困惑。

(3) 我不希望我的 Docker 映像直接在映像中包含我的 Node.JS 应用程序源文件,因此必须在每次提交时重新创建我的映像。相反,我想运行我的 Docker 容器,以便在启动特定提交时从我的私有 Git 存储库中提取源代码。这可能吗?我可以在运行 Docker 容器时使用入口点之类的东西来指定我的凭据并提交,这样它就会运行一个 shell 脚本来拉取代码,然后启动节点应用程序?

(4) 我最终可能会在同一个 EC2 主机上运行多个不同的 Docker 容器。我想确保容器都基于相同的 Linux 发行版会是首选?这会阻止我在首次启动实例并运行不同的容器时下载多个版本?

谢谢!