在linux docker容器中挂载使用云存储网关

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 本文介绍在linux环境下的docker容器中如何通过云存储网关以文件接口存储访问对象存储(OSS)中的数据。

背景

阿里云云存储网关是一个让用户通过SMB/NFS协议访问阿里云对象存储(OSS)的产品,用户通过部署云存储网关,并在客户端挂载云存储网关提供的挂载点,就可以轻松的访问自己在OSS 对象存储桶(bucket)中的数据,非常的方便。 那么如果用户在自己的ECS中部署了容器环境,如果在容器中直接访问网关的共享呢?本文就将介绍下,在linux的docker环境中如何挂载云存储网关的NFS共享。

步骤

首先,让我们准备好存储网关的共享,我们可以根据文件网关快速入门的介绍来先创建一个文件网关,并绑定需要访问的oss bucket,在这个例子中,我们将共享名称取名为docker-volume。

接下来,我们到我们的linux客户端当中,首先使用showmount 命令,查看linux客户端是否可以访问到云存储网关的nfs 共享。

# 我们以nas共享IP地址192.168.0.76为例,可以看到showmount 输出了
# /docker-volume (everyone) 这个我们的共享名称的目录

# showmount -e 192.168.0.76 
Export list for 192.168.0.76:
/docker-volume (everyone)

确定客户端访问共享没问题后,就可以为docker配置云存储网关共享作为后端存储资源了,我们运行下面的命令来基于云存储网关的nfs共享来创建一个docker volume:

docker volume create --driver local \
    --opt type=nfs \
    --opt o=addr=192.168.0.76,rw \
    --opt device=:/docker-volume \
    sgw-docker
    

上边的命令中,--opt type=nfs 表示我们是创建一个nfs类型的 docker volume, ----opt o=addr=后面是云存储网关提供的共享地址,在这个例子中是192.168.0.76, rw代表是以读写的方式挂载这个共享,用户也可以根据需要将其修改为只读模式(ro) --opt device=: 后面就是云存储网关提供的挂载路径,在这个例子中,我们在云存储网关控制台配置的共享路径为/docker-volume。

运行docker volume create成功后,一个基于云存储网关nfs共享的docker volume就创建成功了,我们可以使用docker volume inspect命令来检查我们的配置, 可以看到我们取名为sgw-docker 的这个docker volume的详细配置信息。

# docker volume inspect sgw-docker
[
    {
        "CreatedAt": "2020-09-21T16:24:31+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/sgw-docker/_data",
        "Name": "sgw-docker",
        "Options": {
            "device": ":/docker-volume",
            "o": "addr=192.168.0.76,rw",
            "type": "nfs"
        },
        "Scope": "local"
    }
]

接下来,我们就可以在启动docker容器的时候指定这个docker volume了,我们以一个centos的docker 实例为例:

docker run -v sgw-docker:/data -ti centos:latest  /bin/bash

通过上边的命令,我们以交互方式启动了一个基于centos镜像的docker实例,并将之前创建的sgw-docker 这个docker volume映射到了容器中的/data文件夹,接下来,我们在容器的/data文件夹中创建一个名为hello的测试文件,并写入测试数据:

# cd /data
# touch hello
# echo "test" > hello
# cat hello
test

然后到oss的管理控制台中,进入我们绑定了云存储网关绑定的路径中查看,我们可以看到,在linux docker容器实例中写入的数据已经写入到了对象存储(OSS)中。

Screen Shot 2020-09-21 at 4.27.52 PM.png

通过这种方式,我们在docker容器中可以非常方便的写入和访问对象存储(OSS)中的数据,是不是非常的方便呢?大家赶快试试吧!

目录
相关文章
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
22 2
|
3天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
7天前
|
运维 持续交付 Docker
深入理解Docker容器化技术
深入理解Docker容器化技术
|
4天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
5天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
5天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
5天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
7天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
7天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
7天前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。