代码之家  ›  专栏  ›  技术社区  ›  PPShein

docker卷和Dockerfile内的卷

  •  2
  • PPShein  · 技术社区  · 6 年前

    我搞不懂创造和创造有什么不同 docker volume create my-vol VOLUME ["/var/www"] .

    1) docker卷创建我的卷 在我们的机器上创建一个持久卷,每个容器都可以链接到 my-vol .

    2) 卷[“/var/www”] 在其容器内创建卷。

    当我创建另一个容器时,我可以链接 我的卷 详情如下: 运行容器时

    $ docker run -d --name devtest --mount source=myvol2,target=/app nginx:latest
    

    当时如果我加上 卷[“/var/www”] 在我的docker文件中,此docker文件的所有数据都将存储在 myvol2 /var/www ?

    2 回复  |  直到 6 年前
        1
  •  4
  •   David Maze    6 年前

    码头工人 VOLUME 司令部说了两件事:

    作为操作员,您可以将卷(命名卷或主机目录)装入具有 docker run -v 体积 在Dockerfile中为其声明。

    (因为你可以使用 docker run-v 体积 体积 在Dockerfiles中。)

    就像在普通Linux中一样,在任何给定的目录上只能(有用地)挂载一件东西。使用您描述的设置,数据将存储在 myvol2 您创建并装载,它将在中可见 /var/www 在容器中,但数据实际上只存储在一个地方。如果在没有卷装载的情况下删除并重新创建容器,数据将不再存在。

        2
  •  0
  •   Seifeddine Barhoumi    6 年前

    Docker中使用了两种类型的持久性存储,第一种是Docker卷,第二种是绑定装载。它们之间的区别在于卷是Docker内部的,存储在Docker存储中(通常都在/var/lib/Docker下),绑定装载使用计算机上的物理位置存储持久数据。

    如果要为nginx使用Docker卷:

    docker run-d——name devtest-v nginx vol:/usr/share/nginx/html nginx

    [path]是要存储容器数据的位置。