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

Docker Compose 如何迁移启动目录

  •  
  •   jmyz0455 · 278 天前 · 1607 次点击
    这是一个创建于 278 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 a 目录下有一个 docker-compose.yml 文件,然后我用 docker-compose up 启动了该容器,然后我想把该 Docker Compose 迁移到 b 目录下管理,我应该怎样操作呢?

    本人初学 Docker,不是很理解 Docker Compose 原理,因为这个 docker-compose 项目里面有重要的数据,所以我怕迁移过程中会出现数据丢失。当我搜索 “ Docker Compose 迁移 ” 字眼时,基本都是教 docker save 和 docker export 备份镜像和容器,没有教怎么迁移 Docker Compose 项目。然而在看文章的时候又提到了容器卷这个概念,指数据卷又独立于镜像和容器之外,有自己的生命周期,需要在恢复备份的容器之后再另外进行挂载备份的数据卷。可能我的理解不是很正确,迁移 Docker Compose 项目需要如此大费周章的吗?

    我只是在本机里操作,给 docker-compose 换一个目录而已,但是网上确实搜不到相关教程,单纯移动 docker-compose.yml 文件肯定是没用的,官网的文档 https://docs.docker.com/compo... 也没有看到什么头绪。难道是我想得太复杂了?

    14 回复  |  直到 2019-02-15 16:54:51 +08:00
        1
    zbinlin   278 天前
    这看你的 docker-compose.yml 有没有配置写死了路径的,如果没有,可以先 `docker-compose down` 停掉,然后直接把 docker-compose.yml 复制到 b 目录就可以了。如果 a 目录里还有其他文件(夹)需要用到的了,也一同复制过去。
        2
    liuyibao   278 天前
    楼上正解,试下就知道了。
        3
    jmyz0455   278 天前
    @zbinlin 我的 .yml 是来自网上的教程,看上去没有写固定的路径,麻烦您检查下?
        4
    jmyz0455   278 天前
    @zbinlin https://blog.wangriyu.wang/2018/05-server-nextcloud.html
    我其实就是怕数据丢失了,不是很敢做这一步而已。
    docker-compose down 之后 mv .yml 再 docker-compose start 启动就可以了吧?
        5
    AngryPanda   278 天前
    怕丢数据,操作前先备份。
        6
    jmyz0455   278 天前
    @liuyibao @liuyibao docker-compose down 之后用 docker-compose start 启动就可以吗,数据都会还在吧?
        7
    jmyz0455   278 天前
    @AngryPanda 请教一下,docker save 和 docker export 命令都是无法备份到数据的吧?只是备份了镜像和容器。
        8
    whileFalse   278 天前
    建议先把数据导出来。
        9
    zbinlin   278 天前
    从你给的链接来看,你的数据在 /docker/nextcloud 目录,备份好这个目录就可以了。
        10
    okchum   278 天前
    @zbinlin 9 楼说得对。
        11
    zbinlin   278 天前
    楼主检查下 `/docker/nextcloud` 下各目录是否有数据,我发现你用的 wonderfall/nextcloud 与官方的 nextcloud 在配置目录上有点区别。
        12
    jmyz0455   278 天前
    @whileFalse @zbinlin @okchum @zbinlin
    我以为数据是挂载在容器里,原来是写在宿主环境上啊,看来我对 docker 理解太浅薄了已经备份好,谢谢各位。
    还有一个小问题,请问管理多个 Docker Compose 是不是建立多个目录,然后各个目录放入单独一个 docker-compose.yml 来管理?还是说用一份 docker-compose.yml 把所有 Compose 都写上?
        13
    HaroldChen   278 天前
    @jmyz0455 一般 docker-compose.yml 是根据服务一对一的,分别建目录管理。
        14
    jmyz0455   277 天前 via iPhone
    @HaroldChen 那我想问一下如果是误操作,比如我在 a 目录里,只有一个 docker-compose.yml ,并且已经执行过 docker-compose up 了,不小心手动删掉了这个 docker-compose.yml ,结果在 a 目录里无法执行 docker-compose 命令了,提示找不到 docker-compose.yml ,docker-compose ps 和 docker-compose images 都显示为空,那怎么办呢?

    如何在 a 目录里重建对原有 Docker Compose 项目的管理?我手动把 docker-compose.yml 文件恢复回去是没有用的。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   956 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 21:28 · PVG 05:28 · LAX 13:28 · JFK 16:28
    ♥ Do have faith in what you're doing.