Docker Compose 是一个用于管理多个 Docker 容器的工具,让你可以通过一个 YAML 文件来定义多个容器,然后通过一个命令启动它们。在实际开发中,我们通常会使用 Docker Compose 来组织我们的开发环境。
在 Docker Compose 中,我们可以为容器指定存储卷,这样可以将容器内部的数据保留在宿主机上,以便在容器被删除或重新创建时不会丢失。本文将介绍如何在 Docker Compose 中指定容器存储卷。
指定存储卷
在 Docker Compose 中,我们可以使用 volumes
字段来指定容器的存储卷。这个字段可以有以下两种形式:
一个字符串:表示为容器挂载一个无名卷。例如:
-------- --- --------- ---- ------ ----- -------- - -----------------------------------
在这个例子中,我们将宿主机
/path/to/html
目录挂载到了容器/usr/share/nginx/html
目录上。一个字典:表示为容器挂载一个具名卷。例如:
-------- --- --------- ---- ------ ----- -------- ---------------------------- -------- -------
在这个例子中,我们创建了一个名为
mydata
的卷,并将它挂载到了容器/usr/share/nginx/html
目录上。当我们删除这个容器时,数据会保留在mydata
卷上。当我们重新创建这个容器时,它可以重新挂载这个具名卷,这样就可以保留容器之间的数据。
指定读写权限
我们可以使用 :ro
或 :rw
来指定容器存储卷的读写权限。例如:
-------- --- --------- ---- ------ ----- -------- - -------------------------------------- - -------------------------------
在这个例子中,/path/to/html
目录是只读的,而 /path/to/logs
目录是可读可写的。
示例代码
下面是一个完整的 Docker Compose 文件,它启动了一个 Nginx 服务器,并将它的 html 和 log 文件夹挂载到了宿主机上:
-------- --- --------- ---- ------ ----- ------ - ------- -------- - ---------------------------- - ---------------------
在这个例子中,我们使用了 ports
字段来将宿主机的 80 端口映射到了容器的 80 端口。并使用了 volumes
字段将容器的 html 和 log 文件夹挂载到了宿主机上。
总结
在 Docker Compose 中指定容器存储卷可以让我们将容器内部的数据保存在宿主机上,以便在容器被删除或重新创建时不会丢失。我们可以使用 volumes
字段来指定容器的存储卷,并使用 :ro
或 :rw
来指定存储卷的读写权限。在实际项目中,我们应该根据需要来选择具名卷或无名卷,并考虑挂载卷的路径和读写权限等问题。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64f2b0cbf6b2d6eab3c4ea7a