首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法运行Docker容器因为设备映射程序错误

无法运行Docker容器因为设备映射程序错误
EN

Stack Overflow用户
提问于 2014-07-12 04:43:07
回答 5查看 23.9K关注 0票数 20

我再也不能在Docker中创建和运行新的容器了。但同时,可以运行以前创建的容器。

当我试图做这样的事情时:

代码语言:javascript
复制
[user@host ~ ] docker run --name=fpm-5.3 debian:jessie
2014/07/12 07:34:08 Error: Error running DeviceCreate (createSnapDevice) dm_task_run failed

来自docker.log

代码语言:javascript
复制
2014/07/12 05:57:11 POST /v1.12/containers/create?name=fpm-5.3
[f56fcb6f] +job create(fpm-5.3)
Error running DeviceCreate (createSnapDevice) dm_task_run failed
[f56fcb6f] -job create(fpm-5.3) = ERR (1)
[error] server.go:1025 Error: Error running DeviceCreate (createSnapDevice) dm_task_run failed
[error] server.go:90 HTTP Error: statusCode=500 Error running DeviceCreate (createSnapDevice) dm_task_run failed

dmsetup状态

代码语言:javascript
复制
docker-8:1-1210426-pool: 0 209715200 thin-pool 352 2510/524288 205173/1638400 - ro discard_passdown queue_if_no_space 

但它们在磁盘上有很大的空闲空间。

dmsetup

代码语言:javascript
复制
Name:              docker-8:1-1210426-pool
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      1
Major, minor:      252, 0
Number of targets: 1

码头信息

代码语言:javascript
复制
Containers: 4
Images: 65
Storage Driver: devicemapper
 Pool Name: docker-8:1-1210426-pool
 Data file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 12823.3 Mb
 Data Space Total: 102400.0 Mb
 Metadata Space Used: 9.9 Mb
 Metadata Space Total: 2048.0 Mb
Execution Driver: native-0.2
Kernel Version: 3.14.4

码头版

代码语言:javascript
复制
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-21 14:44:54

下面是一个Fedora/RHEL系统,所以你需要调整一下Debian.

代码语言:javascript
复制
# systemctl stop docker.service
# thin_check /var/lib/docker/devicemapper/devicemapper/metadata

如果没有错误,那么继续进行:

代码语言:javascript
复制
# thin_check --clear-needs-check-flag /var/lib/docker/devicemapper/devicemapper/metadata
# systemctl start docker.service
# docker run --name=fpm-5.3 debian:jessie

要安装thin_check命令,请运行:

代码语言:javascript
复制
# apt-get install -y thin-provisioning-tools
票数 42
EN

Stack Overflow用户

发布于 2014-09-26 13:13:53

在重新启动之后,当停靠分区已填充且停靠器将不再启动时,我遇到了以下情况:

代码语言:javascript
复制
# thin_check /var/lib/docker/devicemapper/devicemapper/metadata
examining superblock
examining devices tree
  missing devices: [0, -]
    bad checksum in btree node
examining mapping tree
  thin device 72 is missing mappings [137494, 137594]
    bad checksum in btree node
  thin device 72 is missing mappings [137721, -]
    bad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree nodebad checksum in btree node

我能够用这个程序进行修复:

代码语言:javascript
复制
# thin_dump -r /var/lib/docker/devicemapper/devicemapper/metadata -o /tmp/metadata.xml
# thin_restore -i /tmp/metadata.xml -o /var/lib/docker/devicemapper/devicemapper/metadata
票数 9
EN

Stack Overflow用户

发布于 2017-09-13 08:14:35

在我们的例子中,只需要启动和停止服务。

取决于您的系统,您可以运行:

代码语言:javascript
复制
service docker stop
service docker start

或者:

代码语言:javascript
复制
sudo systemctl stop docker.service
sudo systemctl start docker.service

或者:

代码语言:javascript
复制
sudo /etc/init.d/docker restart
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24709741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档