色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

docker volumes 文件映射方式

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

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

實現(xiàn)

通過docker-compose配置文件volumes參數(shù)

配置文件示例:

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

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

創(chuàng)建容器時,代碼中配置相關參數(shù)

代碼中創(chuàng)建容器時添加:

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參數(shù)需要按照自己的映射關系去填寫。

這樣和通過:

1、docker-compose 配置文件啟動

2、或者docker -v 參數(shù)命令行啟動

達到一樣效果。

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

docker容器不保持任何數(shù)據(jù)

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

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

主機卷的映射

[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主機, 創(chuàng)建相應的文件夾,并將其共享給docker的兩臺主機,兩臺docker主機將分享的文件夾映射到容器中,使得對應的容器可以共享到nfs主機的內(nèi)容。可以將http等服務器的相應的頁面文件夾使用這種形式,從而實現(xiàn)多個容器跑一個業(yè)務。

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

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

標簽: Docker
相關文章:
主站蜘蛛池模板: 免费国产综合视频在线看 | 好妞操| 国产一进一出视频网站 | 日本一级在线播放线观看视频 | 欧美成人怡红院在线观看 | 欧美国产在线一区 | 国产精品伦理久久久久 | 久久青草国产手机看片福利盒子 | 免费国产一级特黄久久 | 亚洲经典乱码在线播 | 免费国产视频在线观看 | 香蕉久久夜色精品国产尤物 | 日韩亚洲欧美一区 | 操操综合网 | 九九欧美 | 国产精品久久久久国产精品 | 精品一区二区三区在线观看 | 国产精品成人免费视频 | 成人 在线欧美亚洲 | 欧美一级片观看 | 欧美极品欧美精品欧美视频 | 久久黄色精品视频 | 男女视频在线看 | 99精品国产免费久久国语 | 欧美在线一二三区 | 国产欧美一区二区三区久久 | 男人av的天堂| 日韩一区二区在线播放 | 久久精品一区二区三区中文字幕 | 国产欧美成人一区二区三区 | 理论片我不卡在线观看 | 91理论片 | 91成人免费版 | 国内精品久久久久久网站 | 精品一区二区三区四区在线 | 国产精选经典三级小泽玛利亚 | 欧美成人私人视频88在线观看 | 99久久精品国产一区二区小说 | 偷拍第1页 | 中文字幕乱码中文乱码综合 | 午夜影院黄色片 |