📜  在Docker容器内挂载卷

📅  最后修改于: 2021-04-17 01:31:09             🧑  作者: Mango

当您使用Docker容器开发微服务架构时,您将创建多个Docker容器来创建和测试应用程序的不同组件。现在,其中一些组件可能需要共享文件和目录。如果分别在所有容器中复制相同文件,则可能导致图像大小不必要的增加,而且,更改一个容器中的文件不会在其他容器中的相同文件中创建相应的更改。

因此,您需要一个可以挂载在多个Docker容器上的共享目录或卷,并且它们全部具有对特定文件或目录的共享访问权限。 Docker允许您在多个容器中挂载共享卷。在本文中,我们将一个卷挂载到其他容器上,并检查文件中的更改是否在所有容器之间共享。请按照以下步骤在Docker Container中装入卷:

步骤1:显示所有现有的Docker卷

要显示所有现有的Docker Volumes,可以使用list命令,如下所示。

sudo docker volume ls 
卷清单

卷清单

步骤2:创建一个卷

要创建新的Docker Volume,可以使用Volume Create命令。

sudo docker volume create geeksforgeeks
批量创建

批量创建

步骤3:检查Docker卷

要获取已创建的卷的详细信息,可以使用“卷检查”命令。

sudo docker volume inspect geeksforgeeks
体积检查

体积检查

步骤4:挂载Docker卷

创建卷后,下一步是将卷安装到Docker容器。我们将使用Ubuntu基本映像创建一个Docker容器,并使用-v标志将geeksforgeeks卷安装到该容器。

sudo docker run -it -v geeksforgeeks:/shared-volume --name my-container-01 ubuntu

上面的命令将geeksforgeeks卷挂载到名为my-container-01的Docker容器内名为shared-volume的目录中。

挂载Docker卷

挂载Docker卷

步骤5:在Docker Volume中创建一个文件

在容器的bash内,创建一个新文件并添加一些内容。

ls
cd /shared-volume
echo “GeeksforGeeks” > geeksforgeeks.txt
ls
exit
建立档案

建立档案

步骤6:创建另一个容器并挂载卷

创建另一个名为my-container-02的Docker容器,并在该容器内安装名为geeksforgeeks的相同Docker卷。

sudo docker run -it -v geeksforgeeks:/shared-volume --name my-container-02 ubuntu
验证共享内容

验证共享内容

如果转到shared-volume目录并列出文件,则将找到在同一卷中创建但之前已安装在my-container-01中的geeksforgeeks.txt文件,并且其中也具有相同的内容。之所以如此,是因为该卷在两个容器之间共享。

总而言之,在本文中,我们讨论了如何创建和检查卷并将其安装到多个Docker容器。当您希望在多个Docker容器之间共享对文件和目录的访问时,这被证明是非常有用的。