准备工作:腾讯云配置(目前个人可以申请6个月免费的文件存储服务器)、centos7、centos上安装dokcer、centos上安装Git
腾讯云配置: accessKey、secretKey、bucketName、regionName
centos:Git的安装(拉取cosfs源码)
Cos上操作
cos云存储桶新建文件目录作为文件挂载点,新建存储文件的子目录,如新建目录 /dev/
Centos上操作(参考文档: https://www.ioiox.com/archives/65.html)
- 服务器安装COSFS工具(此处使用git来下载依赖,并保存到/user/cosfs目录下)
git clone https://github.com/tencentyun/cosfs /usr/cosfs
- 安装依赖软件
sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel fuse-devel make openssl-devel fuse
- 编译和安装 COSFS(查看cosfs版本信息显示正常则安装编译成功)
cd /usr/cosfs # 进入cosfs存放目录 ./autogen.sh ./configure make sudo make install cosfs --version # 查看cosfs文件版本安装情况,显示出来相应版本则说明安装成功
-
配置cos密钥文件和设置文件权限
公式: echo <BucketName-APPID>:<SecretId>:<SecretKey> > /etc/passwd-cosfs# 将配置信息写入passwd_cosfs文件中 echo luotj-1254274: AKIDIislOlrRzGGzRcMuJ: sVNp2C4f0WA > /etc/passwd-cosfs # 设置配置文件的权限 chmod 640 /etc/passwd-cosfs
-
创建服务器挂载的目录
mkdir -p /data/sahre
-
挂载COS子目录,处就已经完成整个系统的挂载情况)
cosfs <BucketName-APPID> <MountPoint> -ourl=<CosDomainName> -odbglevel=info
-o nonempty # 挂载到本地的目录不为空时.
-oallow_other # 允许其他用户访问,允许Web直连下载.cosfs luotj-125427:/dev /data/share -ourl=https://cos.ap-guangzhou.myqcloud.com -odbglevel=info -onoxattr -oallow_other /dev 为挂载的子目录,如果不需要挂载当前子目录可以为空,为空则是挂载整个存储桶 /data/share 为centos服务器上挂载的文件目录 https://cos.ap-guangzhou.myqcloud.com 为centos的文件存储对象的区域地址
-
删除已挂载的目录(如若不需要挂载则可以删除挂载点)
umount -l /data/share /data/share 为centos挂载的目录
-
文件存储器上/dev目录下新增文件,在centos的/data/share文件目录下有着相同的同一个文件则搭载成功
-
拉取centos镜像(以下的步骤是为了实现docker和服务器文件共享功能,如需不进行深究可忽略以下步骤, 参考文档: https://blog.csdn.net/weixin_42739916/article/details/106551307)
docker pull centos 拉取一个centos镜像进行操作,如果已经有类似的镜像可以进行挂载的,可忽略当前步骤
-
启动镜像(并启用共享文件夹宿主机的/data/share和容器内的/opt/video文件目录实现共享)
docker run -d --name my-test -v /data/share:/opt/video centos my-test 为当前启动容器的别名 /data/share 为宿主机的文件目录 /opt/share 为容器内的挂载目录
-
进入容器内Docker容器内操作
docker exec -it 容器ID /bin/bash 容器ID可以通过dokcer ps命令查看对应启动容器后的生成的容器ID
Docker容器内操作
- 进入容器目录/opt/video
cd /opt/video
- 在挂载目录下新建文件 test.mp4
touch test.mp4
- 查看centos目录/data/share文件目录下是否产生test.mp4文件,有则说明挂载成功,如若同时挂载了cos存储桶则在存储桶内的/dev目录下也有一个test.mp4文件目录。