docker-compose:之前的音量设置会覆盖更改

时间:2018-03-06 13:30:37

标签: docker docker-compose

我一直在使用主机目录作为postgresql容器的数据卷。我的docker-compose.yml读的是这样的。

postgresql:
        image: postgres
        ports:
            - "5432:5432"
        container_name: postgresql
        networks:
            - mynet
        volumes:
            - pg-data:/var/lib/postgresql/data

volumes:
    pg-data:
        driver_opts:
            type: none
            device: /volumes/pgdata
            o: bind

由于我们想要将所有数据合并到一个加密卷中,我决定重新映射此容器的卷。

volumes:
    pg-data:
        driver_opts:
            type: none
            device: /volumes/data/pgdata
            o: bind

我知道我需要删除此图像的容器并重新创建图像。我删除了所有容器和图像。当我尝试重建(docker-compose up --build postgresql)图像时,似乎docker-compose仍然在某处记住我的旧设置。我收到以下错误。

ERROR: for postgresql  Cannot create container for service postgresql: error while mounting volume with options: type='none' device='/volumes/pgdata' o='bind': no such file or directory

它仍在尝试访问旧的卷定义,因为我的新docker-compose.yml没有引用此目录。

感谢一些帮助来解决这个问题。我在这里错过了一些步骤吗?

1 个答案:

答案 0 :(得分:1)

这在docker-compose中被证明是per this post的一个问题。这计划在下一版本中修复。同时,解决方法建议工作。

  

与此同时,你应该能够解决这个问题   删除现有卷(docker volume rm -f <project>_pg-data   或docker-compose down -v