# 前言

在上一篇中讲述了利用 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
# filerldb2  m9333  vol_dir.uuid
更新于 阅读次数