如下所示指定docker volume:
volumes:
- /var/lib/mysql
它存放在主机上的哪个位置?
我在mac上使用docker,事情比在linux上更复杂
在文档中,它只是说:https://docs.docker.com/compose/compose-file/
volumes:
# Just specify a path and let the Engine create a volume
- /var/lib/mysql
这对我来说并不清楚。
从我可以看出它安装在虚拟盒vm上
这是正确的吗?
答案 0 :(得分:0)
请先阅读相关文件:Docker Data volumes
理解卷的简单方法是,如果您了解Unix / Linux,您可以认为这些卷是与物理服务器世界类似的单独文件系统(UFS),您使用不同的/,/ usr,/ home创建服务器,在具有不同文件夹的不同ufs中,不仅有一个根/
'夹。
带
volumes:
- /var/lib/mysql
在-v /var/lib/mysql
命令中或docker run
,当您登录docker容器并在其上df -k
时,您应该有一个单独的文件夹
所以我们可以制作一个Demo来了解它是如何工作的。
运行没有选项-v /var/lib/mysql
$ docker run -ti --rm alpine sh
/ # df -k
Filesystem 1K-blocks Used Available Use% Mounted on
none 61886452 7996664 50723068 14% /
tmpfs 1024828 0 1024828 0% /dev
tmpfs 1024828 0 1024828 0% /sys/fs/cgroup
/dev/vda2 61886452 7996664 50723068 14% /etc/resolv.conf
/dev/vda2 61886452 7996664 50723068 14% /etc/hostname
/dev/vda2 61886452 7996664 50723068 14% /etc/hosts
shm 65536 0 65536 0% /dev/shm
tmpfs 1024828 0 1024828 0% /proc/kcore
/ #
然后使用-v /var/lib/mysql
$ docker run -ti -v /var/lib/mysql --rm alpine sh
/ # df -k
Filesystem 1K-blocks Used Available Use% Mounted on
none 61886452 7996700 50723032 14% /
tmpfs 1024828 0 1024828 0% /dev
tmpfs 1024828 0 1024828 0% /sys/fs/cgroup
/dev/vda2 61886452 7996700 50723032 14% /var/lib/mysql
/dev/vda2 61886452 7996700 50723032 14% /etc/resolv.conf
/dev/vda2 61886452 7996700 50723032 14% /etc/hostname
/dev/vda2 61886452 7996700 50723032 14% /etc/hosts
shm 65536 0 65536 0% /dev/shm
tmpfs 1024828 0 1024828 0% /proc/kcore
/ #
现在您看到音量设置为
/dev/vda2 61886452 7996700 50723032 14% /var/lib/mysql
您可以使用以下命令将本地磁盘装入该卷:
-v /src/mysql:/var/lib/mysql
或者在docker-compose中:
volumes:
- /src/mysql:/var/lib/mysql
它会将主持人/src/mysql
挂载到容器/var/lib/mysql
希望我已经解释了你的问题。