首页 > 解决方案 > 如何明确提及外部卷名?

问题描述

使用以下 docker-compose:

version: '2'

volumes:
  myvolume:
    external: true

networks:
  network1:
    name: my-app-net

services:
  someservice:
    build:
      context: .
    volumes:
      - myvolume:/var/folder
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "8080:8080"
    networks:
      - my-app-net

文件夹/a/b已存在于 docker 主机上

如果我使用 resource type 编写一个随机的 cloudformation 任务定义AWS::ECS::TaskDefinition,那么我们编写如下内容:

  SomeTaskDefinition:
    Type: "AWS::ECS::TaskDefinition"
    Properties:
      ContainerDefinitions:

        - Name: someapp
          Image: someaccount/someimage
          Memory: 450
          MountPoints:
            - ContainerPath: /var/www/someapp
              SourceVolume: webroot


      Volumes:
        - Name: webroot
          Host:
            SourcePath: /a/b

--driver我们在命令中使用它时没有提到任何存储驱动程序选项( ) docker volume create,我们只是挂载它。


如何使外部卷成为特定文件夹(/a/b) ext2 FS,可在 docker 主机中使用?可以myvolume指定...

标签: amazon-web-servicesdockerdocker-composeamazon-cloudformation

解决方案


如果你只想从主机挂载目录 /a/b/,你可以使用

volumes:
  - /a/b/:/var/folder

如果要从 compose 之外的主机上的目录创建命名卷,可以使用 -

docker volume create --driver local --opt device=/a/b --opt type=none myvolume

https://docs.docker.com/engine/reference/commandline/volume_create/


推荐阅读