docker volumes 檔案對映

2021-08-10 03:33:51 字數 1432 閱讀 5956

在做區塊鏈日誌模組時,如果容器執行,需要把日誌檔案對映到宿主機上以方便檢視。下面介紹一下我的實現方式。

配置檔案示例:

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 )

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

if destination == ""

source = "/tmp/chaincode_logs/" + containerid

volumes[destination] = struct{}{}

mount := docker.mount

config := docker.config

hostconfig := getdockerhostconfig()

hostconfig.binds = string

copts := docker.createcontaineroptions

dockerlogger.debugf("create container: %s", containerid)

_, err = client.createcontainer(copts)

if err != nil

dockerlogger.debugf("created container: %s", imageid)

return

nil}

其中volumes,mounts, hostconfig.binds引數需要按照自己的對映關係去填寫。

這樣和通過:

1、docker-compose 配置檔案啟動

2、或者docker -v 引數命令列啟動

達到一樣效果。

檔案 標頭檔案 原始檔(C )

標頭檔案和原始檔中的函式宣告與定義 函式原型 file fsopen const char filename,const char mode,int shflag file wfsopen const wchar t filename,const wchar t mode,int shflag 注 ...

python 檔案遍歷 檔案讀取 檔案操作

一 檔案遍歷 import os filedir d os.sep data2 for root,dirs,files in os.walk filedir for dir in dirs print os.path.join root,dir for file in files print os....

python 檔案操作,讀檔案,寫檔案

讀取檔案的全部內容 def get f none try f open 致橡樹.txt r encoding utf 8 print f.read except filenotfounderror print 無法開啟指定的檔案 except lookuperror print 指定了未知的編碼 e...