正常更新Ubuntu 14.04后无法启动Docker容器

时间:2019-05-07 16:33:15

标签: docker docker-compose ubuntu-14.04

我的系统是Ubuntu 14.04,原始内核是3.13

$ uname -a
Linux dai-fp-adrecognizer 3.13.0-161-generic #211-Ubuntu SMP Wed Oct 3 14:52:35 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

我的容器过去在系统上运行良好。 docker-compose.yml如下:

version: '3'
services:
  scheduler:
    image: dreg.be/tvacr/dai-ws-server:1.0.2
    volumes:
      - /etc/dai-wsserver/ws_server_conf.ini:/etc/dai-wsserver/ws_server_conf.ini
    ports:
      - 6789:6789
    command: /etc/dai-wsserver/ws_server_conf.ini

今天下午,我确实在this instruction之后在系统上安装了ffmpeg。基本上执行以下命令:

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install ffmpeg

此后,我得知我的容器突然停止了。我尝试重新启动它,但始终无法打印出此错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:297: copying bootstrap data to pipe caused \"write init-p: broken pipe\"": unknown.

进行一些搜索后,我发现a bug report出现了该问题。然后,我遵循the most upvoted comment的建议,建议将内核升级到4.4

sudo apt-get install --install-recommends linux-generic-lts-xenial
sudo reboot

现在我的内核是4.4

$ uname -a
Linux dai-fp-adrecognizer 4.4.0-146-generic #172~14.04.1-Ubuntu SMP Fri Apr 5 16:51:29 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

但是我的容器仍然无法开始打印出不同的错误:

$ docker-compose up
Creating dai-wsserver_scheduler_1 ... error

ERROR: for dai-wsserver_scheduler_1  Cannot create container for service scheduler: error creating aufs mount to /var/lib/docker/aufs/mnt/79d5913e12e2439a40f1dfbfa2b6b615ef476f5c2c4694e0dd8726bb17e52dae-init: no space left on device

ERROR: for scheduler  Cannot create container for service scheduler: error creating aufs mount to /var/lib/docker/aufs/mnt/79d5913e12e2439a40f1dfbfa2b6b615ef476f5c2c4694e0dd8726bb17e52dae-init: no space left on device
ERROR: Encountered errors while bringing up the project.

我确实检查了系统上剩余的空间,所有内容看起来都不错:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.9G   12K  7.9G   1% /dev
tmpfs           1.6G  344K  1.6G   1% /run
/dev/xvda1       12G  6.7G  4.5G  61% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            7.9G  7.9G     0 100% /run/shm
none            100M     0  100M   0% /run/user

$ sudo du -h --max-depth=1 /var/lib/docker/aufs
288K    /var/lib/docker/aufs/layers
300K    /var/lib/docker/aufs/mnt
2.7G    /var/lib/docker/aufs/diff
2.7G    /var/lib/docker/aufs

我不知道系统发生了什么以及如何解决。感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

它在安装ffmpeg之前起作用(以及相关的系统更改);当一切正常时,您可以恢复到“已知良好”状态吗?从这一点来看,我将看看ffmpeg对系统的影响。这就是错误的根本原因所在。

答案 1 :(得分:0)

我确实在this之后找到了解决问题的方法。简而言之,我确实清除了aufs下的/var/lib/docker

sudo service docker stop
sudo rm -rf /var/lib/docker/aufs
sudo rm -f /var/lib/docker/linkgraph.db
sudo service docker start

当然所有图像都会消失。但这很好,我可以重新拉动图像。