小编qkr*_*ger的帖子

如何删除旧的Docker容器

这个问题与我是否应该关注多余的,非运行的Docker容器有关?.

我想知道如何删除旧容器.将docker rm 3e552code34a让你删除一个,但我有很多了.docker rm --help不提供选择选项(如全部或图像名称).

也许有一个存储这些容器的目录,我可以手动轻松删除它们?

docker

1162
推荐指数
23
解决办法
69万
查看次数

如何管理docker图像依赖关系(维护)

使用docker,您可以非常好地基于其他图像创建图像.例如,你可以制作一个图像Java-jdk7(基于最新的Ubuntu LTS),并在此基础上创建图像elastic-search和tomcat7(两者都需要java).

所以,如果我没有标记我的图像,我最终得到以下(摘录docker images):

????????????????????????????????????????????????
?      REPOSITORY      ?  TAG   ?      ID      ?
????????????????????????????????????????????????
? ubuntu               ? 12.04  ? 8dbd9e392a96 ?
? quintenk/jdk7-oracle ? latest ? 8928245086f4 ?
? quintenk/tomcat7     ? latest ? 995cdb2cbfa8 ?
? quintenk/elastics    ? latest ? 123abc456ef2 ?
????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

现在提出问题.我应该如何/应该保持这种依赖?如何执行维护1个图像和从属图像?

  1. 如果我更新我的jdk图像(apt-get upgrade例如),我认为我不会破坏依赖图像?但是,我还假设依赖树不再像您期望的那样.[更新:我已经复制了这个,所以请看下面我自己的答案]
  2. 如果1是正确的,是否有某些方法可以让依赖图像标记为过时,并且(希望)让它们自己重建?

或者是使用版本号标记容器的方法,并使用增加的版本号标记手动重建和重新分发所有依赖项?这意味着需要更改Dockerfiles才能进行更新.

更新:我在他们的演示文稿中找到了docker网站上的以下图片.但是,我不太确定如何执行此操作的步骤(特别是对我所描述的其他图像的依赖性).

更新docker容器的流程

docker

36
推荐指数
2
解决办法
2万
查看次数

在docker容器中自动运行服务

我正在设置一个简单的图像:一个保存Riak(一个NoSQL数据库).该图像riak start作为CMD 启动Riak服务.现在,如果我将它作为守护进程运行docker run -d quintenk/riak-dev,它确实启动了Riak进程(我可以在日志中看到它).但是,它会在几秒钟后自动关闭.如果我使用docker run -i -t quintenk/riak-dev /bin/bashriak进程运行它没有启动(更新:请参阅答案以获得解释).事实上,根本没有服务运行.我可以使用终端手动启动它,但我希望Riak自动启动.我认为其他服务也会出现这种情况,Riak只是一个例子.

因此,运行/重新启动容器应该会自动启动Riak.设置它的正确方法是什么?


作为参考,这里是用于创建图像的Dockerfile(更新:使用所选答案进行更改):

FROM ubuntu:12.04
RUN apt-get update
RUN apt-get install -y openssh-server curl 
RUN curl http://apt.basho.com/gpg/basho.apt.key | apt-key add -
RUN bash -c "echo deb http://apt.basho.com precise main > /etc/apt/sources.list.d/basho.list"
RUN apt-get update
RUN apt-get -y install riak
RUN perl -p -i -e 's/(?<=\{http,\s\[\s\{")127\.0\.0\.1/0.0.0.0/g' /etc/riak/app.config
EXPOSE 8098 
CMD /bin/riak start && tail -F /var/log/riak/erlang.log.1
Run Code Online (Sandbox Code Playgroud)

编辑:-f根据他的评论,在CMD中改为-F


我自己的答案

在与Docker合作一段时间之后,我养成了使用supervisord来调整我的进程的习惯.如果您想要示例代码,请查看https://github.com/Krijger/docker-cookbooks.我使用我的主管图像作为我所有其他图像的基础.我在这里写了一篇关于使用主管的博客.

riak docker

35
推荐指数
4
解决办法
5万
查看次数

GreenDao freemaker.jar失踪了

我刚下载了GreenDao的新jar文件,以便为我正在构建的应用程序创建我的数据库.

在完成我的实体建模和它们之间的连接的所有过程之后,我尝试运行生成器项目,但是生成数据库的行出现了这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: freemarker/template/ObjectWrapper
    at com.glide.talk.glide.model.generator.Model.main(Model.java:29)
Caused by: java.lang.ClassNotFoundException: freemarker.template.ObjectWrapper
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

发生的行是:new DaoGenerator().generateAll(schema, src);我在buildpathlib文件夹中只有greendao-generator-1.3.0.jar文件.

任何想法或解决方案都会非常有帮助.

ps 是否可以使用版本1.2中的freemaker.jar?

编辑:目前,我从sourceforge下载了这个版本,我希望这实际上是我需要使用的.

android android-sqlite greendao

10
推荐指数
1
解决办法
4088
查看次数

Scala - 单元测试设置(使用访问修饰符限定符?)

我是Scala的新手(来自Java),我喜欢开发TDD/BDD.所以在了解Scala之前我已经潜入了Scalatest.

我想知道你认为什么是单元测试的良好访问策略,从你想要尽可能多的测试的角度来看.

假设我有一个我要测试的班级世界和一个不应该知道世界一切的班级代理.

package program {
  package world {
    class World {
      private var notForAgent
      def forAgentDuringActing
      // forAgentDuringActing has an important side effect in notForAgent
    } 
  }

  package agent {
    class Agent
    // would call World.forAgentDuringActing
  }

  package world.test {
    class WorldSpec extends FunSpec {
      describe("The world") {
        it("should have side-effect behaviour when the agent acts on it") {
          // ... the test ...
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这些包声明对我来说并不神圣.我真正想要的是,WorldSpec会像World的伴侣对象,因此它可以测试副作用.

我想也许访问修饰符限定符会有所帮助.我可以说private[world] notForAgent,但这确实比我想要的更多.我实际上想要的是private[this, test.WorldSpec] notForAgent,但我不认为允许多个限定符.

你会怎样做才能使这个可测试?或者,你能指出我的想法走向错误的方向吗? …

tdd unit-testing scope scala

7
推荐指数
1
解决办法
1241
查看次数

玩!关于dokku内存问题的框架(堆对象)

部署Play时出现此错误!应用于dokku:总计27(delta 0),重用0(delta 0)

----->建筑测试......

播放2.x - 检测到Java应用程序

----->安装OpenJDK 1.6 ...完成

----->使用sbt构建应用程序

----->运行:sbt clean编译阶段

VM初始化期间发生错误

无法为对象堆保留足够的空间

!无法使用sbt构建应用程序

到dokku@breams.pl:测试

![远程拒绝]主 - >主(预接收挂钩拒绝)

我的服务器有512MB的内存,它是VPS.当我使用play run命令时,一切都很好.只有在dokku部署期间我才会收到此错误.

任何人都可以帮我解决这个问题吗?

java deployment heap-memory playframework dokku

5
推荐指数
1
解决办法
663
查看次数

将war文件从本地机器复制到docker

我正在使用 docker 并创建了一个运行良好的 tomcat 容器。但我不知道如何复制 tomcat 容器的 webapps 文件夹中的 war 文件。

请帮忙!

谢谢,亚什

tomcat docker

5
推荐指数
1
解决办法
6325
查看次数

Dokku在控制台中显示错误

我有部署与Dokku部署的node.js应用程序,因为第一个部署应用程序崩溃并且Docker容器关闭后,所以我再次在计算机上检查了我的项目并发现错误.如何在Dokku上调试错误?有控制台吗?

node.js docker dokku

1
推荐指数
1
解决办法
1481
查看次数

与Dokku一起开始delayed_job

我正在使用Dokku和delayed_job gem,我正在尝试像这样开始这个过程:

dokku run APP_NAME bin/delayed_job start RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

但没有注册任何工作,当我这样做时:

dokku run APP_NAME bin/delayed_job restart RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

我明白了 Warning: no instances running. Starting...

但是,如果我用以下内容启动过程:

dokku run APP_NAME rake jobs:work
Run Code Online (Sandbox Code Playgroud)

它工作......但只有我登录到服务器.

有任何想法吗?

ruby-on-rails delayed-job docker dokku

1
推荐指数
1
解决办法
1038
查看次数