Docker 卷的挂载目录

Docker 卷的挂载目录

我目前正在尝试熟悉 docker,但遇到了一个问题。我试图在两个容器之间共享一个卷,但我不希望它们将文件放入卷根目录中。

它看起来应该是这样的:

Container1:Mysql 必须存储 /var/lib/mysql/* -> Volume1/mysql

Container2:Ngnix 必须存储 /var/www/* -> Volume1/www

如果使用以下命令创建容器,则其外观如下:

-v Volume1:/var/lib/mysql/
-v Volume1:/var/www/

Container1:Mysql 必须存储 /var/lib/mysql/* -> Volume1

容器 2:Ngnix 必须存储 /var/www/* -> Volume1

TLDR:我不想为了单个文件而创建卷,但为了使其可行,我必须使用目录来维护卷中的顺序。

答案1

如果我理解正确的话,你想要的是这样的:

docker run -it --name mysql -v volume/mysql:/mountpoint alpine ash
docker run -it --name nginx -v volume/nginx:/mountpoint alpine ash

但这是不可能的。您无法挂载卷的子目录。

如果你需要这种细粒度的控制,你最好只使用 -v 挂载主机目录

顺便说一句:nginx 容器不需要有 mysql 文件。反过来,mysql 不需要 www 文件。我认为这些只是一般的例子

答案2

您可以将它们安装-v /path/to/volume1/mysql:/var/lib/mysql-v /path/to/volume1/www:/var/www

相关内容