Docker 卷挂载

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

这个 Docker 卷挂载挑战将测试你在 Docker 卷方面的技能,这是 Docker 环境中数据持久化和共享的关键概念。你将通过创建一个命名卷、运行一个挂载了该卷的容器并向其中添加数据,来展示你对 Docker 卷的理解。这种动手实践将巩固你对 Docker 卷及其实际应用的知识。

这是一个挑战(Challenge),与实验(Lab)不同,你需要独立完成挑战任务,而不是按照实验的步骤学习。挑战通常有一点难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。根据历史数据,这是一个 初级 级别的挑战,通过率为 100.00%

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/run -.-> lab-389116{{"Docker 卷挂载"}} docker/exec -.-> lab-389116{{"Docker 卷挂载"}} docker/volume -.-> lab-389116{{"Docker 卷挂载"}} end

创建并挂载 Docker 卷

任务

  1. 创建一个名为 data_volume 的新 Docker 卷。
  2. 使用 Alpine 镜像运行一个新容器。将 data_volume 卷挂载到容器内的 /app 目录。在 /app 目录中创建一个名为 hello.txt 的文件,内容为 "Hello, Docker volumes."。确保容器在后台保持运行。

要求

要成功完成此挑战,请遵循以下指南:

  • 所有操作请在 /home/labex/project 目录下进行。
  • 使用 Alpine 镜像作为容器的基础镜像。
  • 将容器命名为 volume_mounter
  • hello.txt 文件的内容必须为 "Hello, Docker volumes."。
  • 使用 Docker 命令创建卷并运行容器。
  • 将卷挂载到容器内的 /app 路径。
  • 确保容器在后台运行。

示例

完成任务后,通过运行以下命令验证你的工作:

  1. 检查卷是否已创建:
docker volume ls | grep data_volume

这应该列出你创建的 "data_volume"。

  1. 检查容器的状态:
docker ps | grep volume_mounter

这应该显示你的 "volume_mounter" 容器处于运行状态。

  1. 检查容器以验证卷挂载:
docker inspect volume_mounter --format '{{ range .Mounts }}{{ if eq .Destination "/app" }}{{ .Name }}{{ end }}{{ end }}'

这应该输出 "data_volume",确认卷已正确挂载。

  1. 检查你创建的文件是否存在:
docker exec volume_mounter cat /app/hello.txt

这应该显示 "hello.txt" 文件的内容。

✨ 查看解决方案并练习

总结

这个 Docker 卷挂载挑战巩固了你对 Docker 卷的理解,以及它们在容器生命周期中持久化数据的重要性。你练习了创建命名卷、运行挂载卷的容器,并向这些卷写入数据。

这些技能是容器化技术的基础,能够帮助你在 Docker 环境中有效地管理数据。请记住,卷是确保数据持久化以及在主机和容器之间共享信息的关键。

OSZAR »