通过 docker compose 重新使用现有卷

jon*_*xas 11 volumes docker docker-compose

我设置了两个独立的 docker 容器,一个运行网络服务器,另一个运行 mysql。现在我正试图让它与 docker-compose 一起工作。一切都很好,运行良好,但我想知道如何重新使用我之前创建的现有独立容器中的现有卷(因为我想保留它们中的数据)。

我看到有人建议为此使用external: true命令,但到目前为止无法获得正确的语法。

external: true是正确的方法,还是我应该以不同的方式处理?或者我可以在 docker-compose.yml 中指定卷的路径并使其使用旧的现有卷吗?

小智 8

是的,您可以正常进行,仅在下面举个例子:

version: "3.5"
services:
  transmission:
    image: linuxserver/transmission
    container_name: transmission
    volumes:
      - transmission-config:/config
      - /path/to/downloads:/downloads
    ports:
      - 51413:51413
      - 51413:51413/udp
    networks:
      - rede
    restart: always

networks:
  rede:
    external:
      name: rede
volumes:
  transmission-config:
    external: true
    name: transmission-config

Run Code Online (Sandbox Code Playgroud)


She*_*lva 6

根据使用外部标志的文档,您可以使用在 docker-compose 文件范围之外创建的卷。

但是,建议通过 docker-compose 文件创建一个新卷并将现有数据从旧卷复制到新卷

  • 为什么建议创建新卷? (5认同)