如果我有一个主机上运行的mysql数据库,并且该主机也在运行一个docker容器:我将如何从主机上运行的docker容器内访问mysql数据库? 例如,有没有办法将主机端口发布到容器(与docker run -p相反)?
我很困惑dockerregistry和仓库之间的区别。 看起来Docker文档可以交换使用这两个词。 此外,存储库有时也被称为图像,例如来自他们的文档的图像: 为了将存储库推送到其registry中,您需要命名图像或将容器提交给命名图像,如我们在此处所见。 现在,您可以将此存储库推送到由其名称或标记指定的registry。 你怎么能把一个版本库推送到registry中? 你不是把图像推送到存储库吗?
我将如何去启动一个应用程序在我的主机,以便从正在运行的docker集装箱读取文件和标准输出? 基本上我想这样做: docker start containerid ./myapp // This app will *somehow* have access files and stdout generated by the container I just stared. 我将如何去做呢? 更具体地说,我正在试图去与这个; 我想读取docker容器的日志和标准输出,并在其他地方处理这些日志。 我也愿意创build另一个docker容器,可以从另一个容器读取文件和标准输出,但是我不知道这是否可能。
我对这两个选项有点困惑。 他们似乎是相关的。 但是,它们并不真正兼容。 例如,使用Dockerfiles似乎意味着你不应该对图像进行提交,因为你应该只是在git中跟踪Dockerfile并对其进行更改。 那么什么是权威性就没有歧义。 但是,图像提交看起来非常好。 这太好了,你可以直接修改一个容器,并标记更改以创build另一个图像。 我知道你甚至可以从图像提交历史logging中得到类似文件系统差异的东西。 真棒。 但是,那么你不应该使用Dockerfiles。 否则,如果你做了一个图像提交,你将不得不返回到你的Dockerfile并作出一些改变,代表你做了什么。 所以我被撕裂了 我喜欢图像提交的想法:您不必在Dockerfile中表示图像状态 – 您可以直接跟踪它。 但是我放弃了某种清单文件的概念,这个清单文件让您快速了解图像中的内容。 看到同一个软件包中的两个function似乎不兼容也是令人不安的。 有没有人有这个想法? 使用图像提交被认为是不好的做法? 或者我应该放下我的附件,从我的Puppet日子里清单文件? 我该怎么办? 更新 : 对于所有认为这是一个基于意见的问题的人,我不太确定。 有一些主观的品质,但我认为这主要是一个客观的问题。 此外,我相信在这个话题上的一个很好的讨论将是信息。 最后,我希望任何读这篇文章的人都能更好地理解Docker文件和图像提交是如何相互关联的。 更新 – 2017/7/18 : 我刚刚发现了一个合法的使用图像提交。 我们只是在我们公司build立一个CIpipe道,在pipe道的一个阶段,我们的应用testing是在一个容器内运行的。 我们需要在testing运行器进程生成它们(在容器的文件系统中)并且容器已经停止运行之后,从退出的容器中检索覆盖率结果。 我们使用图像提交来做到这一点,提交停止的容器来创build一个新的图像,然后运行显示和转储覆盖文件到标准输出的命令。 所以有这个方便。 除了这个特定的情况,我们使用Dockerfiles来定义我们的环境。
是否有可能以某种方式回答使用apt-get安装某些软件包时作为对话框显示的问题? 例如我试图设置一个包含mail-stack-delivery包的容器: FROM ubuntu RUN apt-get install -y mail-stack-delivery 然而,dockerfile在编译时会产生许多错误,这些错误包括: debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can't locate Term/ReadLine.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 […]
我一直在使用这个Docker-image tutum / wordpress来演示一个WordPress的网站。 最近我发现图像使用了MySQL数据的卷。 所以问题是这样的:如果我想备份和恢复容器,我可以尝试提交一个图像,然后删除容器,并从提交的图像创build一个新的容器。 但是,如果我这样做,音量被删除,我的所有数据都消失了。 必须有一些简单的方法来备份我的容器加上它的卷数据,但我找不到任何地方。
我正在使用ring和clojure编写一个web应用程序。 我正在使用开发服务器的docker适配器和IDE的emacs / SLIME。 尽pipewrap-reload确实有帮助,run-jetty阻止了我的slime会话,我希望能够随意启动/停止它,而不必在单独的terminal会话中运行它。 理想情况下,我想定义一个服务器代理程序,并启动启动/停止代理服务器的start-server和stop-server。 这可能吗?
我有很多图像。 当我尝试用docker rmi移除它们时 $ sudo docker rmi acd33a9490dc Error response from daemon: No such id: 75ce1f6710bab109a7d7cbee056fa8a0c7fa913e81c88e2a55121149dda80ee9 2014/07/14 10:13:24 Error: failed to remove one or more images 75ce1 …哈希是一样的,无论哪个docker图像我试图删除。 目前,下面给出了当前的docker版本; 然而,这些图像中的一些从早期版本(0.6左右) $ sudo docker version Client version: 1.0.1 Client API version: 1.12 Go version (client): go1.2.1 Git commit (client): 990021a Server version: 1.0.1 Server API version: […]
我正在尝试创build一个“可执行”war文件( java -jar myWarFile.war ),它将启动一个Jetty Web服务器,该Web服务器托pipe包含在我执行的WAR文件中的Web应用程序。 我find了一个描述如何使我所寻找的网页 : 然而,遵循这个build议以及我认为我应该做一个可执行的jar(战争)是行不通的。 我有一个Ant任务创build一个WAR文件,其清单如下所示: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 Created-By: 1.5.0_18-b02 (Sun Microsystems Inc.) Main-Class: Start WAR文件的内容如下所示: > Start.class > jsp > build.jsp > META-INF > MANIFEST.MF > WEB-INF > lib > jetty-6.1.22.jar > jetty-util.6.1.22.jar 当我尝试执行WAR文件时,错误是: Exception in thread "main" java.lang.NoClassDefFoundError: org/mortbay/jetty/Handler Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.Handler at java.net.URLClassLoader$1.run(URLClassLoader.java:202) […]
假设我有一个Docker容器和一个在我的主机/hostFolder主机文件夹上的文件夹。 现在,如果我想将这个文件夹作为一个卷添加到Docker容器中,那么我可以通过在Dockerfile使用ADD或者将其挂载为一个卷来执行此操作。 到现在为止还挺好。 现在/hostFolder包含一个子文件夹/hostFolder/subFolder 。 我想将/hostFolder挂载到Docker容器中(无论是读写还是只读都无关紧要,对我都有效),但是我不希望将它包含在/hostFolder/subFolder 。 我想排除这个,我也希望Docker容器能够对这个子文件夹进行更改,而不必在主机上进行更改。 这可能吗? 如果是这样,怎么样?