将服务的卷从v2迁移到v3

时间:2018-06-06 21:03:21

标签: docker docker-compose

以下是基于mongodata图片的v2 tianon/true卷:

version: "2" 
services:   
  mongo:
    container_name: mongo
    image: mongo
    ports:
      - "27017:27017"
    volumes_from:
      - mongodata

  mongodata:
    image: tianon/true
    volumes:
      - /data/db

如何将其迁移到v3?我在下面的看法没有用。可能是因为这个音量不是基于图像?

version: "3"
services:
  mongo:
    container_name: mongo
    image: mongo
    ports:
      - "27017:27017"
    volumes:
      - mongodata:/data/db

volumes:
  mongodata:

1 个答案:

答案 0 :(得分:0)

TL; DR:看起来你不能。

但您可以复制内容:

  • 使用以下内容标识所有正在运行的卷和名称:docker system df -v
  • 查找哪个容器正在使用卷docker ps -f "volume=VOLUMENAME"
  • Optionaly暗示:docker volume inspect VOLUMENAME

当您确定要复制的卷时,请将其克隆:

docker run --rm \
           -i \
           -t \
           -v SOURCEVOLUME:/from \
           -v TARGETVOLUME:/to \
           alpine ash -c "cd /from ; cp -av . /to"

Clone script credits