Named Volumes
通过docker 命令在主机创建一个卷,用户为容器挂载卷时不用关心卷的位置,可以直接利用卷名进行挂载,为容器提供数据的持久化功能。
-
创建卷
$ docker volume create <volume name>
-
挂载卷
重点是使用
-v
选项: -v 宿主机目录:指定挂载到容器内的目录$ docker run -d -p 8080:8080 -v <volume name>:/usr/share/nginx/html nginx:latest
-
查看卷
$ docker volume ls
-
查看卷信息
$ docker volume inspect <volume name> [ { "CreatedAt": "2021-03-15T21:17:13+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/517aef7ffa32ff283eec61a72951ac6679e81aaaa22d318746f7c488e03f8c48/_data", "Name": "517aef7ffa32ff283eec61a72951ac6679e81aaaa22d318746f7c488e03f8c48", "Options": null, "Scope": "local" } ]
bind mounts
通过bind mounts也可以提供数据的持久化功能,但是大多数情况下使用它来为容器提供我们定义的额外数据。
例如我们在主机创建配置文件/etc/nginx/nginx.conf
,利用docker启动 nginx 的时候可以直接将主机上的配置文件挂载到 nginx 容器中。
$ docker run -d -p 8080:8080 -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf nginx:latest