# 前言
在上一篇中讲述了利用 docker context
命令来切换远程上下文。而在使用远程的服务端的过程中没有办法直接挂载本地文件,因此本篇主要介绍使用 docker volume
来创建远程服务器上的存储卷。
# Docker Volume 命令
| Usage: docker volume COMMAND |
| |
| Manage volumes |
| |
| Commands: |
| create Create a volume |
| inspect Display detailed information on one or more volumes |
| ls List volumes |
| prune Remove all unused local volumes |
| rm Remove one or more volumes |
主要包含上述 5 个命令,其中 prune
这个命令慎用,它会清理掉所有未使用的卷
# 创建卷
下述命令将创建一个持久卷供 seaweedfs 来使用
| docker volume create seaweedfs |
# 查看卷的实际存储位置
| docker volume inspect seaweedfs |
其返回结果是:
| [ |
| { |
| "CreatedAt": "2023-08-22T11:43:58+08:00", |
| "Driver": "local", |
| "Labels": null, |
| "Mountpoint": "/var/lib/docker/volumes/seaweedfs/_data", |
| "Name": "seaweedfs", |
| "Options": null, |
| "Scope": "local" |
| } |
| ] |
挂载的目录就在 /var/lib/docker/volumes/seaweedfs/_data
(该位置是在服务端的服务器上),后续就可以在 docker-compose
中使用这个外部 volume
了
# 声明 seaweedfs 的部署 docker-compose.yml
| version: '3' |
| services: |
| storage-app: |
| image: chrislusf/seaweedfs |
| restarts: always |
| command: server -dir=/data -s3 |
| volumes: |
| - seaweedfs:/data |
| ports: |
| - 8333:8333 |
| volumes: |
| seaweedfs: |
| external: true |
# 通过命令行快速创建 docker-compose.yml
| cat > docker-compose.yml <<EOF |
| version: '3' |
| services: |
| storage-app: |
| image: chrislusf/seaweedfs |
| restart: always |
| command: server -dir=/data -s3 |
| volumes: |
| - seaweedfs:/data |
| ports: |
| - 8333:8333 |
| volumes: |
| seaweedfs: |
| external: true |
| EOF |
# 查看挂载 volume 是否有文件
| sudo ls /var/lib/docker/volumes/seaweedfs/_data |
| |