欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker容器之间调用_如何在Docker容器之间共享数据

程序员文章站 2022-03-13 12:06:30
...
docker容器之间调用_如何在Docker容器之间共享数据

介绍

Docker是一种流行的容器化工具,用于向软件应用程序提供包含运行所需的所有内容的文件系统。使用Docker容器确保软件将以相同的方式运行,而不管其部署在哪里,因为它的运行时环境无残忍地一致。 一般来说,Docker容器是短暂的,只要在容器中发出的命令完成就运行。然而,有时,应用程序需要在容器被删除后共享对数据的访问或持久化数据。数据库,网站的用户生成的内容和日志文件只是一些数据的示例,这些数据在Docker镜像中是不切实际或不可能包含的,但是哪些应用程序需要访问。 Docker卷提供对数据的持久访问。

先决条件

要跟随这篇文章,你将需要一个Ubuntu 16.04服务器,具有以下:

  • 具有sudo权限的非root用户。在使用Ubuntu 16.04初始服务器设置指南介绍如何设置起来。
  • 第1步第2步中的说明进行安装Docker如何在Ubuntu 16.04安装和使用Docker

注:即使先决条件给出了在Ubuntu 16.04安装Docker指令, docker本文中Docker数据量的命令应该在其它操作系统上,只要Docker已安装并运行sudo用户已被添加到docker组。 Docker卷可以在创建容器的同一命令中创建和附加,也可以独立于任何容器创建,然后再连接。在本文中,我们将介绍在容器之间共享数据的四种不同方法。

1 - 创建独立卷

在Docker的1.9版本中引入的docker volume create命令,可以没有它与任何特定的容器创建卷。 我们将使用这个命令来添加一个名为量DataVolume1 :

docker volume create --name DataVolume1

将显示名称,表示命令成功。

OutputDataVolume1

为了使用量,我们将创建一个从Ubuntu的镜像新的容器,使用--rm标志,当我们退出时自动删除。 我们将使用-v安装新卷。 -v需要大卷,一个冒号,然后是绝对路径所在的卷应出现在容器内的名称。 如果路径中的目录不作为映像的一部分存在,那么将在命令运行时创建它们。 如果他们存在,安装的卷将隐藏现有内容。

docker run -ti --rm -v DataVolume1:/datavolume1 ubuntu

当我们在那里,我们将写一些数据到卷:

echo "Example1" > /datavolume1/Example1.txt

因为我们使用了--rm标志,我们的容器时,将自动退出我们删除。但是,我们的卷仍然可以访问。

exit

我们可以验证卷存在与系统上docker volume inspect :

docker volume inspect DataVolume1Output[ { "Name": "DataVolume1