Cannt在CentOS 7上运行或构建Docker镜像

时间:2017-02-15 11:49:26

标签: docker

我现在正在学习使用Docker,我已在我的服务器(CentOS 7)上安装了docker。但是当我按照官方教程进行操作时,我遇到了一个让我无法继续的问题:

mkdir /var/lib/docker/overlay/7849ab40fd8072dcd724387dab14707bb4af0e94d9ab4f71795d0c478c3d49a9-init/merged/dev/shm: invalid argument

当我构建/运行大多数图像时出现(很少图像没有失败是官方python:最新和hello-world)

我试图做的是提取官方形象"码头工具/鲸鱼"并运行如下:

docker run docker/whalesay
Unable to find image 'docker/whalesay:latest' locally
latest: Pulling from docker/whalesay
e190868d63f8: Pull complete 
909cd34c6fd7: Pull complete 
0b9bfabab7c1: Pull complete 
a3ed95caeb02: Pull complete 
00bf65475aba: Pull complete 
c57b6bcc83e3: Pull complete 
8978f6879e2f: Pull complete 
8eed3712d2cf: Pull complete 
Digest: sha256:178598e51a26abbc958b8a2e48825c90bc22e641de3d31e18aaf55f3258ba93b
Status: Downloaded newer image for docker/whalesay:latest
docker: Error response from daemon: mkdir /var/lib/docker/overlay/fb4b7f34f0963d158856dadccec49963e47716865c83066f7e6eaf0bae057a13-init/merged/dev/shm: invalid argument.
See 'docker run --help'.

这是我的码头信息:

Containers: 5
Running: 0
Paused: 0
Stopped: 5
Images: 4
Server Version: 1.13.0
Storage Driver: overlay
Backing Filesystem: extfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
Volume: local
Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-327.22.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.702 GiB
Name: iZ25d1y69iaZ
ID: VJAP:FBMM:CQ5I:KIV5:FO47:VJUJ:ECU2:5TOS:JZBE:EUSH:HUFF:NCAZ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

我试图搜索,没找到同样的问题。它看起来像文件系统问题,所以这是我的df -h和文件-s / dev / vda1

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  4.9G   33G  14% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  352K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           380M     0  380M   0% /run/user/1000

/dev/vda1: Linux rev 1.0 ext4 filesystem data, UUID=80b9b662-0a1d-4e84-b07b-c1bf19e72d97 (needs journal recovery) (extents) (large files) (huge files)

我是Docker的新手,所以这可能是相同的配置问题或版本问题,但我发现了它。

我感谢任何建议和答案!

2 个答案:

答案 0 :(得分:3)

我在SLES12,我通过

解决了这个问题
  1. service stop docker
  2. vi /etc/docker/daemon.json(这是一个新文件)
  3. 添加以下条目
  4.   

    {     “存储驱动程序”:“devicemapper”   }

    1. service start docker

答案 1 :(得分:1)

修改: GitHub issue并讨论了这个问题。

我记得3.10内核和overlayfs / ext4 / xfs文件系统存在问题,有些人注意到它开始使用更新的内核(我认为3.18中overlayfs模块是添加到内核中。)

因此,如果您可以选择升级内核,则可以检查overlayfs+ext4是否有效。

如果内核升级不是一个选项,那么我想你唯一的选择是使用另一个存储驱动程序(aufs不应该可用,所以device mapper