Error[8]: Undefined offset: 5, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我已经从这个 site下载并安装了静态链接的docker 1.6.1,并在RHEL 7.1上运行它: [root@localhost bin]# ./docker -dWARN[0000] Udev sync is not supported. This will lead to unexpected behavior, data loss and errorsINFO[0000] +job 我已经从这个 site下载并安装了静态链接的docker 1.6.1,并在RHEL 7.1上运行它:
[root@localhost bin]# ./docker -dWARN[0000] Udev sync is not supported. This will lead to unexpected behavior,data loss and errorsINFO[0000] +job init_networkdriver()INFO[0000] +job serveAPI(unix:///var/run/docker.sock)INFO[0000] Listening for http on unix (/var/run/docker.sock)INFO[0000] -job init_networkdriver() = OK (0)INFO[0000] Loading containers: start.INFO[0000] Loading containers: done.INFO[0000] docker daemon: 1.6.1 97cd073; execdriver: native-0.2; graphdriver: devicemapperINFO[0000] +job acceptconnections()INFO[0000] -job acceptconnections() = OK (0)INFO[0000] Daemon has completed initialization

我可以看到有一个警告:“不支持Udev同步.这将导致意外行为,数据丢失和错误”,并且在检查docker源代码后,我发现警告日志来自deviceset.go:

func (devices *DeviceSet) initDevmapper(doInit bool) error {    ......    // https://github.com/docker/docker/issues/4036    if supported := devicemapper.UdevSetSyncSupport(true); !supported {        log.Warnf("Udev sync is not supported. This will lead to unexpected behavior,data loss and errors")    }    log.DeBUGf("devicemapper: udev sync support: %v",devicemapper.UdevSyncSupported())    ......}

devicemapper.UdevSetSyncSupport是这样的:

// UdevSyncSupported returns whether device-mapper is able to sync with udev//// This is essential otherwise race conditions can arise where both udev and// device-mapper attempt to create and destroy devices.func UdevSyncSupported() bool {    return DmUdevGetSyncSupport() != 0}// UdevSetSyncSupport allows setting whether the udev sync should be enabled.// The return bool indicates the state of whether the sync is enabled.func UdevSetSyncSupport(enable bool) bool {    if enable {        DmUdevSetSyncSupport(1)    } else {        DmUdevSetSyncSupport(0)    }    return UdevSyncSupported()}

我可以看到原因是启用udev同步失败.如何成功启用udev同步?

更新:
检查dm_udev_set_sync_support的反汇编代码后:

(gdb) disassemble dm_udev_set_sync_supportDump of assembler code for function dm_udev_set_sync_support:=> 0x0000000000a3e4e0 <+0>:     repz retqEnd of assembler dump.

它是一个空函数,什么都不做,没有提到set sync支持.这是否意味着这个静态构建的docker二进制文件是不可用的?

解决方法 我不能重现你的问题;我得到以下内容:
(gdb) disassemble dm_udev_set_sync_supportDump of assembler code for function dm_udev_set_sync_support@plt:   0x0000000000403420 <+0>:     jmpq   *0xda8c92(%rip)        # 0x11ac0b8 <dm_udev_set_sync_support@got.plt>   0x0000000000403426 <+6>:     pushq  [+++]x14   0x000000000040342b <+11>:    jmpq   0x4032d0

帮自己一个忙:忽略docker.io所做的构建,直接从RHEL获取Docker.它可以在Extras频道中找到.虽然它通常比上游版本落后几周(例如1.6而不是1.7),但它也经过了充分测试并保证实际工作.

总结

以上是内存溢出为你收集整理的linux – 如何在docker中成功启用udev同步?全部内容,希望文章能够帮你解决linux – 如何在docker中成功启用udev同步?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
linux – 如何在docker中成功启用udev同步?_系统运维_内存溢出

linux – 如何在docker中成功启用udev同步?

linux – 如何在docker中成功启用udev同步?,第1张

概述我已经从这个 site下载并安装了静态链接的docker 1.6.1,并在RHEL 7.1上运行它: [root@localhost bin]# ./docker -dWARN[0000] Udev sync is not supported. This will lead to unexpected behavior, data loss and errorsINFO[0000] +job 我已经从这个 site下载并安装了静态链接的docker 1.6.1,并在RHEL 7.1上运行它:
[root@localhost bin]# ./docker -dWARN[0000] Udev sync is not supported. This will lead to unexpected behavior,data loss and errorsINFO[0000] +job init_networkdriver()INFO[0000] +job serveAPI(unix:///var/run/docker.sock)INFO[0000] Listening for http on unix (/var/run/docker.sock)INFO[0000] -job init_networkdriver() = OK (0)INFO[0000] Loading containers: start.INFO[0000] Loading containers: done.INFO[0000] docker daemon: 1.6.1 97cd073; execdriver: native-0.2; graphdriver: devicemapperINFO[0000] +job acceptconnections()INFO[0000] -job acceptconnections() = OK (0)INFO[0000] Daemon has completed initialization

我可以看到有一个警告:“不支持Udev同步.这将导致意外行为,数据丢失和错误”,并且在检查docker源代码后,我发现警告日志来自deviceset.go:

func (devices *DeviceSet) initDevmapper(doInit bool) error {    ......    // https://github.com/docker/docker/issues/4036    if supported := devicemapper.UdevSetSyncSupport(true); !supported {        log.Warnf("Udev sync is not supported. This will lead to unexpected behavior,data loss and errors")    }    log.DeBUGf("devicemapper: udev sync support: %v",devicemapper.UdevSyncSupported())    ......}

devicemapper.UdevSetSyncSupport是这样的:

// UdevSyncSupported returns whether device-mapper is able to sync with udev//// This is essential otherwise race conditions can arise where both udev and// device-mapper attempt to create and destroy devices.func UdevSyncSupported() bool {    return DmUdevGetSyncSupport() != 0}// UdevSetSyncSupport allows setting whether the udev sync should be enabled.// The return bool indicates the state of whether the sync is enabled.func UdevSetSyncSupport(enable bool) bool {    if enable {        DmUdevSetSyncSupport(1)    } else {        DmUdevSetSyncSupport(0)    }    return UdevSyncSupported()}

我可以看到原因是启用udev同步失败.如何成功启用udev同步?

更新:
检查dm_udev_set_sync_support的反汇编代码后:

(gdb) disassemble dm_udev_set_sync_supportDump of assembler code for function dm_udev_set_sync_support:=> 0x0000000000a3e4e0 <+0>:     repz retqEnd of assembler dump.

它是一个空函数,什么都不做,没有提到set sync支持.这是否意味着这个静态构建的docker二进制文件是不可用的?

解决方法 我不能重现你的问题;我得到以下内容:
(gdb) disassemble dm_udev_set_sync_supportDump of assembler code for function dm_udev_set_sync_support@plt:   0x0000000000403420 <+0>:     jmpq   *0xda8c92(%rip)        # 0x11ac0b8 <dm_udev_set_sync_support@got.plt>   0x0000000000403426 <+6>:     pushq  x14   0x000000000040342b <+11>:    jmpq   0x4032d0

帮自己一个忙:忽略docker.io所做的构建,直接从RHEL获取Docker.它可以在Extras频道中找到.虽然它通常比上游版本落后几周(例如1.6而不是1.7),但它也经过了充分测试并保证实际工作.

总结

以上是内存溢出为你收集整理的linux – 如何在docker中成功启用udev同步?全部内容,希望文章能够帮你解决linux – 如何在docker中成功启用udev同步?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存