首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Docker

docker volume 的几个问题跟测试相关

  •  
  •   halfcrazy · 2016-07-25 20:43:33 +08:00 · 1475 次点击
    这是一个创建于 1233 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想用 docker 和 compose 做集成测试,为了每次环境都是一致的,是不是应该每个测试案例都用一个新的干净的容器去运行。这样会不会很麻烦?数据应该怎么样初始化和清理?

    还有就是 dockerfile 中用到的 volume ,如果我是 from 过来的镜像,那么它本身挂载的 volume 我能不能取消呢,现在只想到一种做法就是把它原来的 dockerfile 从 volume 那行开始修改。

    另外看到 redis 的官方镜像里面有这么两句话,不知道有什么意义。

    RUN mkdir /data && chown redis:redis /data
    VOLUME /data
    
    8 回复  |  直到 2016-07-31 18:02:18 +08:00
        1
    imxieke   2016-07-25 21:49:57 +08:00 via Android
    创建文件夹与设置权限用的(你该补补 Linux 基础知识)
        2
    imxieke   2016-07-25 21:50:35 +08:00 via Android
    哦 第二个是挂载 volume 的
        3
    lightening   2016-07-25 21:57:42 +08:00
    每次测试应该起一套新的容器啊,不然你用 docker 干什么?
        4
    pacoxu   2016-07-25 22:22:32 +08:00
    没看懂你的目的
    1. 不想用 volume ?
    2. 想保持之前的数据不丢,下次启动可以用?
    3. 想下次启动容器的时候, volume 先清空一次?这样保持每次启动都是干净的?
        5
    matthewgao   2016-07-25 22:46:38 +08:00
    不麻烦啊,你退出了容器的数据就米有了,就等于清空了,如果你非要挂一个 volume 么,你也可以简单的清空那个 volume 了,如果想保存原始的,清空容器添加的,可以考虑用 aufs
        6
    billlee   2016-07-26 00:52:54 +08:00
    @matthewgao 如果 Dockerfile 里面有 VOLUME 指令,且 docker run 的时候没有指定 volume, 那么 docker 会自己产生一个 volume 挂上,并且在删除 container 时不会自动删除。
        7
    halfcrazy   2016-07-26 09:20:43 +08:00
    @imxieke 我知道是创建目录设置权限。还有挂载 volume 啊,我是觉得第一行是在 container 内部建的目录,第二行挂载的是一个虚拟的 volume ,那么第一行`mkdir /data`有什么意义呢
        8
    matthewgao   2016-07-31 18:02:18 +08:00
    @billlee 是的所以,如果希望关了就希望被 purge 那就不要在 Dockerfile 里面指定 VOLUNE
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3554 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 01:08 · PVG 09:08 · LAX 17:08 · JFK 20:08
    ♥ Do have faith in what you're doing.