电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

docker volumes 文件映射方式

瀏覽:143日期:2024-11-04 08:50:49
背景

在做區塊鏈日志模塊時,如果容器運行,需要把日志文件映射到宿主機上以方便查看。下面介紹一下我的實現方式。

實現

通過docker-compose配置文件volumes參數

配置文件示例:

volumes: - /var/run/:/host/var/run/ - ./channel-artifacts:/var/hyperledger/configs - ./fabric_logs:/tmp/fabric_logs/

把容器中/tmp/fabric_logs目錄映射到宿主機當前目錄下的./fabric_logs目錄下。這兩個目錄會共享數據。

創建容器時,代碼中配置相關參數

代碼中創建容器時添加:

func (vm *DockerVM) createContainer(ctxt context.Context, client dockerClient, imageID string, containerID string, args []string, env []string, attachStdout bool) error { volumes := make(map[string]struct{}) var mounts []docker.Mount var source string var destination string var fabricCfgPath = os.Getenv('FABRIC_CFG_PATH') var configName string _, err := os.Stat(fabricCfgPath) if err == nil { configName = strings.ToLower(Peer_Prefix) config := viper.New() config.SetConfigName(configName) config.AddConfigPath(fabricCfgPath) config.ReadInConfig() config.SetEnvPrefix('CORE') config.AutomaticEnv() replacer := strings.NewReplacer('.', '_') config.SetEnvKeyReplacer(replacer) config.SetConfigType('yaml') destination = config.GetString('logging.logpath') //fmt.Println(destination) } if destination == '' { destination = '/tmp/fabric_logs/' } source = '/tmp/chaincode_logs/' + containerID volumes[destination] = struct{}{} mount := docker.Mount{ Name: 'bind', Source: source, Destination: destination, Mode: 'rw', RW: true, Driver: 'rprivate', } mounts = append(mounts, mount) config := docker.Config{Cmd: args, Image: imageID, Env: env, Volumes: volumes, Mounts: mounts, AttachStdout: attachStdout, AttachStderr: attachStdout} hostConfig := getDockerHostConfig() hostConfig.Binds = []string{ source + ':' + destination + ':rw', } copts := docker.CreateContainerOptions{Name: containerID, Config: &config, HostConfig: hostConfig} dockerLogger.Debugf('Create container: %s', containerID) _, err = client.CreateContainer(copts) if err != nil { return err } dockerLogger.Debugf('Created container: %s', imageID) return nil}

其中volumes,Mounts, Hostconfig.Binds參數需要按照自己的映射關系去填寫。

這樣和通過:

1、docker-compose 配置文件啟動

2、或者docker -v 參數命令行啟動

達到一樣效果。

補充:docker文件夾映射的兩種方式---主機卷映射和共享文件夾映射

docker容器不保持任何數據

重要數據請使用外部卷存儲(數據持久化)

容器可以掛載真實機目錄或共享存儲為卷

主機卷的映射

[root@docker1 ~]# mkdir /var/data[root@docker1 ~]# docker run -it -v /var/data:/abc myos[root@f1fb58b85671 /]# cd /abc/[root@f1fb58b85671 abc]# touch f1[root@f1fb58b85671 abc]# lsf1 zhy[root@docker1 ~]# cd /var/data/[root@docker1 data]# lsf1[root@docker1 data]# touch zhy使用共享存儲的映射

思路:

將一臺主機做為nfs主機, 創建相應的文件夾,并將其共享給docker的兩臺主機,兩臺docker主機將分享的文件夾映射到容器中,使得對應的容器可以共享到nfs主機的內容。可以將http等服務器的相應的頁面文件夾使用這種形式,從而實現多個容器跑一個業務。

nfs主機配置【192.168.6.77】

[root@nfs ~]# yum -y install nfs-utils[root@nfs ~]# vim /etc/exports/public *(rw)[root@nfs ~]# systemctl restart nfs-serverFailed to restart nfs-serve.service: Unit not found[root@nfs ~]# mkdir /public[root@nfs ~]# cd /public/[root@nfs public]# touch nfs.txt[root@nfs public]# lsnfs.txtdocker1主機配置

[root@docker1 ~]# vim /etc/fstab 192.168.6.77:/public /mnt/nfs nfs defaults,_netdev 0 0[root@docker1 ~]# mkdir /mnt/nfs [root@docker1 ~]# systemctl restart nfs-server[root@docker1 ~]# mount -a[root@docker1 ~]# df -h192.168.6.77:/public 17G 3.2G 14G 19% /mnt/nfs[root@docker1 ~]# docker run -it -v /mnt/nfs/:/zhuhaiyan 192.168.6.153:5000/myos[root@c7c376e3755a /]# cd /zhuhaiyan [root@c7c376e3755a zhuhaiyan]# lsnfs.txtdocker2主機配置

[root@docker2 ~]# vim /etc/fstab 192.168.6.77:/public /mnt/nfs nfs defaults,_netdev 0 0[root@docker2 ~]# mkdir /mnt/nfs [root@docker2 ~]# systemctl restart nfs-server[root@docker2 ~]# mount -a[root@docker2 ~]# df -h192.168.6.77:/public 17G 3.2G 14G 19% /mnt/nfs[root@docker2 ~]# docker run -it -v /mnt/nfs/:/zhuhaiyan 192.168.6.153:5000/myos[root@cdd805771d07 /]# cd /zhuhaiyan/[root@cdd805771d07 zhuhaiyan]# lsnfs.txt

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Docker
相關文章:
主站蜘蛛池模板: 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 上海橡胶接头_弹簧减震器_金属软接头厂家-上海淞江集团 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 润滑脂-高温润滑脂-轴承润滑脂-食品级润滑油-索科润滑油脂厂家 | 27PR跨境电商导航 | 专注外贸跨境电商 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 钢结构厂房造价_钢结构厂房预算_轻钢结构厂房_山东三维钢结构公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 上海赞永| 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 单柱拉力机-橡胶冲片机-哑铃裁刀-江都轩宇试验机械厂 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 |