最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker volumes 文件映射方式

 更新時(shí)間:2021年03月18日 14:15:42   作者:盧舍那  
這篇文章主要介紹了docker volumes 文件映射的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

背景

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

實(shí)現(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目錄映射到宿主機(jī)當(dāng)前目錄下的./fabric_logs目錄下。這兩個(gè)目錄會(huì)共享數(shù)據(jù)。

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

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

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

這樣和通過:

1、docker-compose 配置文件啟動(dòng)

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

達(dá)到一樣效果。

補(bǔ)充:docker文件夾映射的兩種方式---主機(jī)卷映射和共享文件夾映射

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

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

容器可以掛載真實(shí)機(jī)目錄或共享存儲為卷

主機(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]# ls
f1 zhy
[root@docker1 ~]# cd /var/data/
[root@docker1 data]# ls
f1
[root@docker1 data]# touch zhy

使用共享存儲的映射

思路:

將一臺主機(jī)做為nfs主機(jī), 創(chuàng)建相應(yīng)的文件夾,并將其共享給docker的兩臺主機(jī),兩臺docker主機(jī)將分享的文件夾映射到容器中,使得對應(yīng)的容器可以共享到nfs主機(jī)的內(nèi)容??梢詫ttp等服務(wù)器的相應(yīng)的頁面文件夾使用這種形式,從而實(shí)現(xiàn)多個(gè)容器跑一個(gè)業(yè)務(wù)。

nfs主機(jī)配置【192.168.6.77】

[root@nfs ~]# yum -y install nfs-utils
[root@nfs ~]# vim /etc/exports
/public *(rw)
[root@nfs ~]# systemctl restart nfs-server
Failed 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]# ls
nfs.txt

docker1主機(jī)配置

[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 -h
192.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]# ls
nfs.txt

docker2主機(jī)配置

[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 -h
192.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]# ls
nfs.txt

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • supervisor下的Dockerfile的多服務(wù)鏡像封裝操作

    supervisor下的Dockerfile的多服務(wù)鏡像封裝操作

    這篇文章主要介紹了supervisor下的Dockerfile的多服務(wù)鏡像封裝操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 教你如何通過?SSH?連接到?Docker?容器

    教你如何通過?SSH?連接到?Docker?容器

    如何通過?SSH?連接到正在運(yùn)行的容器,以及為什么在這樣做之前應(yīng)該三思而后行,對如何通過SSH連接到Docker容器相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • docker啟動(dòng)報(bào)錯(cuò)205/limit的解決方案

    docker啟動(dòng)報(bào)錯(cuò)205/limit的解決方案

    Dcoker啟動(dòng)報(bào)錯(cuò)經(jīng)常能看到 205/limit這個(gè)錯(cuò)誤提示,這是告訴你linux操作系統(tǒng)的文件描述符設(shè)置的和Docker的不匹配,或者是設(shè)置的比較小了,本文介紹了docker啟動(dòng)報(bào)錯(cuò)205/limit的解決方案,需要的朋友可以參考下
    2024-06-06
  • docker 查看容器日志命令的實(shí)現(xiàn)

    docker 查看容器日志命令的實(shí)現(xiàn)

    這篇文章主要介紹了docker 查看容器日志命令的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Dockerfile基礎(chǔ)分享

    Dockerfile基礎(chǔ)分享

    在Docker中,構(gòu)建一個(gè)自定義鏡像共有兩種方法,一是通過commit指令構(gòu)建,二是通過Dockerfile文件構(gòu)建。今天我們主要來詳細(xì)探討下Dockerfile的一些基礎(chǔ)。
    2017-01-01
  • Docker和Kubernetes中使用代理IP的操作方法

    Docker和Kubernetes中使用代理IP的操作方法

    在Docker和Kubernetes中使用代理IP很容易,只需要在Docker守護(hù)進(jìn)程和容器運(yùn)行時(shí)添加相應(yīng)的配置即可,這篇文章主要介紹了如何在Docker和Kubernetes中使用代理IP,需要的朋友可以參考下
    2023-07-07
  • Docker-client for python詳解及簡單示例

    Docker-client for python詳解及簡單示例

    這篇文章主要介紹了Docker-client for python詳解及簡單示例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Docker如何使用nginx搭建tomcat集群(圖文詳解)

    Docker如何使用nginx搭建tomcat集群(圖文詳解)

    這篇文章主要介紹了Docker使用nginx搭建tomcat集群的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解docker-compose安裝minio

    詳解docker-compose安裝minio

    這篇文章主要介紹了docker-compose安裝minio的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • docker搭建tomcat運(yùn)行環(huán)境的實(shí)現(xiàn)步驟

    docker搭建tomcat運(yùn)行環(huán)境的實(shí)現(xiàn)步驟

    很多時(shí)候我們測試web系統(tǒng)需要一個(gè)tomcat運(yùn)行環(huán)境,這時(shí)docker就派上用場了,本篇文章主要介紹了docker搭建tomcat運(yùn)行環(huán)境的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2017-01-01

最新評論

当涂县| 乌兰浩特市| 东平县| 拜城县| 明溪县| 平阴县| 内乡县| 龙海市| 九台市| 丰镇市| 武安市| 丰台区| 沈阳市| 图木舒克市| 五峰| 额敏县| 汶川县| 普定县| 沐川县| 玛沁县| 岳阳市| 沽源县| 兴安县| 林甸县| 酒泉市| 枣庄市| 阳泉市| 洛隆县| 芦溪县| 南华县| 连江县| 蓬溪县| 天津市| 晋江市| 策勒县| 仙居县| 新津县| 柯坪县| 无锡市| 大新县| 工布江达县|