从YAML/Compose文件将主机目录挂载到停靠容器 [英] Mounting a host directory to a docker container from yaml/compose file
本文介绍了从YAML/Compose文件将主机目录挂载到停靠容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的当前配置的一部分如下
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
,我并不打算创建扩展坞卷。或者有没有其他更好的方法来做到这一点?
推荐答案
可以这样做,但不能使用标准设置。默认的音量驱动程序不允许您正在寻找的格式。您需要使用需要外部安装的坞站插件。考虑以下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
当您安装了本地持久化插件时,上述将会起作用。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'
这篇关于从YAML/Compose文件将主机目录挂载到停靠容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文