安装一个主机目录从YAML泊坞窗容器/编写文件

安装一个主机目录从YAML泊坞窗容器/编写文件

问题描述:

我有这样安装一个主机目录从YAML泊坞窗容器/编写文件

mymicroservice: 
    image: service_img 
    networks: myoverlay 
    volumes: 
    - /Users/abcdUser/mountme:/opt/company/ 

这不工作我的机器的目录被安装到/opt/company我目前配置的一部分,当我部署泊坞窗群服务堆栈。

但是,我想在单独的volumes:下指定源目录,然后在那里指定该名称。我认为这是可能的,但我无法找到语法。

所以我想大意如下的东西,但不能这样做:

mymicroservice: 
    image: service_img 
    networks: myoverlay 
    volumes: 
    - myownvolume:/opt/company/ 


volumes: 
- myownvolume: /Users/abcdUser/mountme 

我要澄清的是myownvolume这里只是指向目录/Users/abcdUser/mountme,我不打算创建一个泊坞窗卷。或者还有其他更好的方法来做到这一点?

可以这样做,但不能用标准设置。默认的音量驱动程序不允许使用您正在查找的格式。您需要使用需要外部安装的docker插件。考虑下面的yaml

version: '2' 

services: 
    one: 
    image: alpine 
    working_dir: /one/ 
    command: sleep 600 
    volumes: 
     - data:/one/ 

    two: 
    image: alpine 
    working_dir: /two/ 
    command: sleep 600 
    volumes: 
     - data:/two/ 

volumes: 
    data: 
    driver: local-persist 
    driver_opts: 
     mountpoint: /data/local-persist/data 

当你安装了local-persist插件时,上面的代码就可以工作了。 https://github.com/CWSpear/local-persist

您可以找到有关

https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins

其他可用的插件此外,如果卷项的重复是一个问题,对你,那么你可以在YAML

version: '3' 

services: 
    alpines: 
    image: alpine 
    command: sleep 200 
    volumes: &common_volumes 
     - ./data:/data 
     - ./config:/config 
    alpine2: 
    image: alpine 
    command: sleep 200 
    volumes: *common_volumes 

$ docker-compose config 
services: 
    alpine2: 
    command: sleep 200 
    image: alpine 
    volumes: 
    - /home/vagrant/so/volumes2/data:/data:rw 
    - /home/vagrant/so/volumes2/config:/config:rw 
    alpines: 
    command: sleep 200 
    image: alpine 
    volumes: 
    - /home/vagrant/so/volumes2/data:/data:rw 
    - /home/vagrant/so/volumes2/config:/config:rw 
version: '3.0' 
+0

使用锚,这是非常有帮助。长话短说,如果我想避免任何插件,我所做的是没有安装任何第三方插件的唯一途径? – curiousengineer

+0

是的,那么你需要使用你用过的东西 –

这是不可能的。您必须使用绑定安装语法或卷语法。组合配置顶层的音量不允许混合两者。有关类似问题,请参见how to define a general mount point in docker compose