Docker 容器与宿主机数据共享的方法

阅读时长 5 分钟读完

前言

Docker 是一款非常流行的容器化技术,对于前端开发而言,使用 Docker 可以帮助我们更方便地进行开发、测试和部署,提高开发效率和软件质量。在 Docker 中,容器是一个独立的运行环境,但是有时候我们需要与宿主机共享文件夹或数据,本文将介绍 Docker 容器与宿主机数据共享的方法。

共享数据卷

Docker 容器与宿主机共享数据的一种方法是使用数据卷,数据卷是一个可独立于容器之外存在的持久化数据存储机制。使用数据卷可以方便地将容器内的数据与宿主机进行共享。数据卷可以是宿主机上的一个目录或文件,也可以是 Docker Volume 中的一个卷。

创建数据卷

创建数据卷有多种方法,可以手动创建,也可以通过 Docker CLI 创建。

手动创建数据卷:

通过 Docker CLI 创建数据卷:

上述命令中,/path/on/host 是宿主机上的目录,/path/in/container 是容器内的目录,mydata 是 Docker Volume 中的卷名。

挂载数据卷

已有数据卷时,可以通过 -v 参数将数据卷挂载到容器内。

查看数据卷

可以通过 docker volume ls 命令查看所有数据卷。

使用 Dockerfile 创建数据卷

可以在 Dockerfile 中使用 VOLUME 命令来创建数据卷。

例子

以下是通过 Docker Volume 创建数据卷的例子。

使用 docker volume create 命令创建数据卷。

使用 docker run 命令启动容器,并挂载数据卷。

在宿主机上创建一个 index.html 文件,并将其复制到 mydata 数据卷中。

通过浏览器访问 http://localhost,可以看到输出了 Hello world

共享文件

除了使用数据卷,还可以通过共享文件的方式,在容器和宿主机之间进行数据传输。

将宿主机文件挂载到容器内

可以使用 -v 参数将宿主机目录挂载到容器内。

其中 /path/on/host 是宿主机上的目录,/path/in/container 是容器内的目录。

将容器文件复制到宿主机

可以使用 docker cp 命令将容器内的文件复制到宿主机上。

其中 /path/in/container 是容器内的目录,/path/on/host 是宿主机上的目录。

例子

以下是将宿主机文件挂载到容器内的例子。

在宿主机上创建一个 index.html 文件。

使用 docker run 命令启动容器,并挂载宿主机目录。

使用浏览器访问 http://localhost,可以看到输出了 Hello world

总结

Docker 容器与宿主机共享数据的方法有多种,其中数据卷是最为常用的一种。数据卷可以方便地将容器内的数据与宿主机进行共享。除此之外,还可以将宿主机文件挂载到容器内,或者将容器内的文件复制到宿主机上。在实际开发中,应该针对不同的场景选择合适的方法进行数据共享。

参考链接

  1. Docker documentation | Volumes
  2. Docker documentation | Manage data in Docker
  3. Docker Volume vs Host Volume explained
  4. How to Share Data Between Docker Containers
  5. Sharing files between host and a Docker container

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6595532ceb4cecbf2d981fe9

纠错
反馈

纠错反馈