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

docker volumes 文件映射方式

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

背景

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

實(shí)現(xiàn)

通過(guò)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)系去填寫。

這樣和通過(guò):

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

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

達(dá)到一樣效果。

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

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

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

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

主機(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

使用共享存儲(chǔ)的映射

思路:

將一臺(tái)主機(jī)做為nfs主機(jī), 創(chuàng)建相應(yīng)的文件夾,并將其共享給docker的兩臺(tái)主機(jī),兩臺(tái)docker主機(jī)將分享的文件夾映射到容器中,使得對(duì)應(yīng)的容器可以共享到nfs主機(jī)的內(nèi)容??梢詫ttp等服務(wù)器的相應(yīng)的頁(yè)面文件夾使用這種形式,從而實(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à)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • 教你如何通過(guò)?SSH?連接到?Docker?容器

    教你如何通過(guò)?SSH?連接到?Docker?容器

    如何通過(guò)?SSH?連接到正在運(yùn)行的容器,以及為什么在這樣做之前應(yīng)該三思而后行,對(duì)如何通過(guò)SSH連接到Docker容器相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    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),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Dockerfile基礎(chǔ)分享

    Dockerfile基礎(chǔ)分享

    在Docker中,構(gòu)建一個(gè)自定義鏡像共有兩種方法,一是通過(guò)commit指令構(gòu)建,二是通過(guò)Dockerfile文件構(gòu)建。今天我們主要來(lái)詳細(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詳解及簡(jiǎn)單示例

    Docker-client for python詳解及簡(jiǎn)單示例

    這篇文章主要介紹了Docker-client for python詳解及簡(jiǎn)單示例的相關(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)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(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í)候我們測(cè)試web系統(tǒng)需要一個(gè)tomcat運(yùn)行環(huán)境,這時(shí)docker就派上用場(chǎng)了,本篇文章主要介紹了docker搭建tomcat運(yùn)行環(huán)境的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2017-01-01

最新評(píng)論

桑日县| 根河市| 丹阳市| 克什克腾旗| 甘谷县| 吉安市| 永济市| 定安县| 荆州市| 辽宁省| 龙山县| 盘锦市| 三穗县| 遵义县| 芦溪县| 化州市| 宜宾县| 亚东县| 潜山县| 蒙山县| 镇巴县| 北辰区| 和平区| 平乡县| 黑龙江省| 怀来县| 莱西市| 旌德县| 石棉县| 醴陵市| 泉州市| 温宿县| 温泉县| 虞城县| 台中县| 都匀市| 龙海市| 永登县| 荔浦县| 昌江| 定远县|