Windows容器使用阿里云NAS SMB文件系统做持久化存储目录
【玩转容器持久化存储】点我进入活动页面
随着Windows容器逐渐普及和发展,Windows容器持久化存储以及容器间共享的需求越来越高涨。
本文介绍如何让Windows主机正确配置NAS SMB文件系统,支持Windows容器让Docker镜像使用挂载NAS SMB文件系统的子目录作为持久化存储目录。
手工挂载步骤
1. 在阿里云控制台创建ECS虚拟机,选择Windows Container版本。
2. 参考《Windows系统挂载SMB文件系统》官方文档,修改注册表允许匿名访问,创建SMB文件系统,创建挂载点。以下为在cmd命令行中修改注册表允许匿名访问的命令。
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters /f /v AllowInsecureGuestAuth /t REG_DWORD /d 1
3. 打开Powershell,使用New-SmbGlobalMapping命令进行挂载
# Define clear text string for username and password [string]$userName = 'workshop\administrator' [string]$userPassword = '???' # Convert to SecureString [securestring]$secStringPassword = ConvertTo-SecureString $userPassword -AsPlainText -Force [pscredential]$credObject = New-Object System.Management.Automation.PSCredential ($userName, $secStringPassword) # Mount SMB share for container New-SmbGlobalMapping -LocalPath z: -RemotePath \\file-system-id.region.nas.aliyuncs.com\myshare -Persistent $true -Credential $credObject
注意New-SmbGlobalMapping挂载命令使用的用户名是workshop/administrator,密码需要填上ECS的administrator密码。
4. 使用New-Item创建链接,作为容器的数据共享盘
New-Item -ItemType SymbolicLink -Value \\file-system-id.region.nas.aliyuncs.com\myshare -Path c:\datashare
5. 在cmd命令行使用docker run命令运行容器。注意选择ECS操作系统版本对应的容器镜像
docker run -ti --rm -v c:\datashare:c:\data --entrypoint="" registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.16.9.205f5a3-windows1809 pwsh.exe
完成之后在弹出的容器命令行界面中,即可对c:\data目录进行操作,内容会存储在NAS SMB卷中
开机自启动步骤
以上步骤经过改进,可以做成开启启动脚本,使得机器启动后即可生成带持久化存储目录的容器。
1. 在C盘创建c:\startup_script.ps1脚本
# Define clear text string for username and password [string]$userName = 'workshop\administrator' [string]$userPassword = '???' # Convert to SecureString [securestring]$secStringPassword = ConvertTo-SecureString $userPassword -AsPlainText -Force [pscredential]$credObject = New-Object System.Management.Automation.PSCredential ($userName, $secStringPassword) New-SmbGlobalMapping -LocalPath y: -RemotePath \\file-system-id.region.nas.aliyuncs.com\myshare -Persistent $true -Credential $credObject New-Item -ItemType SymbolicLink -Value \\file-system-id.region.nas.aliyuncs.com\myshare -Path c:\datashare
2. 在C盘创建startup_script.bat脚本
ECHO ON ECHO This startup_script will mount smb share and start container powershell -file "c:\startup_script.ps1" >> c:\startup_script.output.txt docker run -ti --rm -v c:\datashare:c:\data --entrypoint="" registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.16.9.205f5a3-windows1809 pwsh.exe
3. 在cmd命令行运行以下命令,生成开机任务
schtasks /create /tn "startup_script" /tr "c:\startup_script.bat" /sc onstart /RU SYSTEM /RL HIGHEST schtasks /run /tn "startup_script"
4. 上述步骤即配置完成开机任务。以后每次开机启动之后,即可运行以下docker命令打开容器命令行,操作c:\data持久化存储目录
4.1. 使用docker ps找到container ID
4.2. 使用docker exec打开容器命令行,可以看到c:\data持久化存储目录

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
非容器应用与K8s工作负载的服务网格化实践-序
序 本系列将包含如下篇章: ASM-VM-PROXY的安装 基于ASM的Workload Entry实践 基于ASM的POD和VM互访实践-HTTP协议篇 基于ASM的POD和VM互访实践-GRPC协议篇 基于ASM的POD和VM混合流量转移实践 基于ASM的VM应用动态落迁实践 基于ASM的POD和VM可观测性实践 ASM-VM-PROXY是虚拟机网格化的通道,第1篇将介绍ASM-VM-PROXY的安装和使用。 WorkloadEntry是k8s集群与ecs集群通信的基础,本系列的第2篇将通过两个实践示例,把WorkloadEntry的用途和作用展示清楚,为后续pod和vm的互访、pod和vm混合场景中的流量转移打好理论基础。 接下来分别介绍基于http/grpc通信协议的POD和VM互访。各种编程语言实现的服务普遍通过http协议提供服务和彼此通信,因此http篇的目的是希望展示ecs网格化过程中最经典的场景。grpc篇的目的有两个,一个是单纯地展示基于grpc通信协议服务的网格化方案,另一个是希望为ecs上使用了其他服务发现方式的遗留服务,提供一种更简单的网格化思路——使用k8s...
- 下一篇
储留香:天庭需要怎样的数据存储系统
大家好,我是阿里云存储团队的储留香。 今天继续和大家聊存储。 在中国神话故事中,高达九重的天庭之中神仙众多,二十八星宿、三十六天罡、七十二地煞等等,每位大仙也多是长生不死,少则几百、多则几万岁,要保障如此庞大的系统组织高效运转就需要一个良好的数据存储系统。 今天,我们就来探究一下,如何构建天庭的数据存储系统。 在满足需求之前,我们需要明确需求。 天庭在数据存储方面的主要需求大体可以概括为: 1、稳定稳定是一切的基石。日常操练的天兵天将、定期召开的蟠桃大会、不定期的歌舞晚宴,这些都需要一个稳定的存储系统的支持。存储系统一旦出现业务宕机或者数据丢失,将直接影响三界五行的正常运转,造成严重后果。 2、弹性存储系统必须具有弹性,可以根据业务量弹性扩容。遇到姜子牙这种一次加封三百六十五位正神的偶发事件,也必须能够有效应对。 3、性能高性能必须高。必须满足下届征讨、玉帝/王母寿辰这种多并发、高性能计算场景下的数据使用。百万IOPS?那是起步价。 4、安全数据必须要安全。像孙悟空这种喜欢大闹天宫的黑客,必须能够有效防范。 5、具有数据分析能力凡人成仙之前要迅速进行大数据分析,将功过值量化,确定成仙时...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Red5直播服务器,属于Java语言的直播服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作