1. 背景:
    1. 容器中的进程操作的数据持久化都是保存在容器的可写层上。一旦容器删除后,这些数据就没了,除非人工备份下来(或者基于容器创建新的镜像)。
    2. docker本身提供了一种机制,可以将主机上的某个目录与容器的某个目录(称为挂载点、或者叫卷)关联起来,容器上的挂载点下的内容就是主机的这个目录下的内容,这类似linux系统下mount的机制。 这样的话,修改主机上该目录的内容时,不需要同步容器,对容器来说是立即生效的。 挂载点可以让多个容器共享。
  2. 创建新容器并挂载( -v 标记):
    docker run --name oneself_test_mount -it -v  宿主机中要进行挂载的目录:映射到的容器中的目录 镜像name:tag /bin/bash
    补充知识点:
    1. docker run 是docker create 和docker start 的缩写,所以每次运行都创建一个新的容器)
    2. 友情提示:通过-v 宿主机目录:容器目录,如果宿主机目录是空的,那你容器目录也变成空的了,这样你的容器有可能无法启动。
  3. 使用“docker inspect 容器name” 查看输出的“mount”字段可以看到挂载的源和目的路径。(其实这个指令可以查看很多很多东西,只待去发掘)
  4. 如果一个容器已经创建了,如何增加挂载点?
    1. 已尝试直接在docker exec中使用-v是不可行的)
    2. 查到的方法:(需要在vm中使用root权限才可以操作)
      1. https://blog.51cto.com/hjun169/2440799
      2. https://www.jianshu.com/p/44e5384e2f8b
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐