docker在未指定的情况下在主机上附加卷的位置?

时间:2016-05-19 23:33:13

标签: docker docker-compose

如下所示指定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上

enter image description here

这是正确的吗?

1 个答案:

答案 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

希望我已经解释了你的问题。

相关问题