web-dev-qa-db-ja.com

カーネル3.19.0-21でDockerデーモンが起動しなくなりました

今週の火曜日に、ラップトップ(Latitude E6520)でカーネルアップデート3.13.1-20から3.19.0-21を受け取りました。再起動時にカーネルパニックが発生したため、ブートメニューから3.19.0-20を選択しましたが、それ以降はすべて問題ありませんでした。翌日(つまり昨日)、カーネル3.19.0-21は問題なく起動し、すべてが正常に実行されていました除く Dockerデーモン。カーネル3.19.0-20で再起動すると修正されます。誰もそれをブロック解除する方法を知っていますか?それ以外の場合は、次の更新まで3.19.0-20をデフォルトのカーネルとして設定します。

PDATE: Docker 1.7はそれを解決しません。ただし、ログは異なります(以下を参照)。

カーネル3.19.0-21およびDocker 1.7.0の場合

Jun 19 10:06:35 E6520-2 systemd[1]: Starting Docker Socket for the API.
Jun 19 10:06:35 E6520-2 systemd[1]: Listening on Docker Socket for the API.
Jun 19 10:06:35 E6520-2 systemd[1]: Started Docker Application Container Engine.
Jun 19 10:06:35 E6520-2 systemd[1]: Starting Docker Application Container Engine...
Jun 19 10:06:35 E6520-2 docker[3779]: time="2015-06-19T10:06:35.917685581+02:00" level=error msg="[graphdriver] prior storage driver \"aufs\" failed: driver not supported"
Jun 19 10:06:35 E6520-2 docker[3779]: time="2015-06-19T10:06:35.917756197+02:00" level=fatal msg="Error starting daemon: error initializing graphdriver: driver not supported"
Jun 19 10:06:35 E6520-2 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 19 10:06:35 E6520-2 systemd[1]: Unit docker.service entered failed state.
Jun 19 10:06:35 E6520-2 systemd[1]: docker.service failed.

今朝の/var/log/syslogの関連部分:

カーネル3.19.0-21の場合:

Jun 18 10:22:27 E6520-2 systemd[1]: Started Docker Application Container Engine.
Jun 18 10:22:27 E6520-2 systemd[1]: Starting Docker Application Container Engine...
…
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=warning msg="Udev sync is not supported. This will lead to unexpected behavior, data loss and errors"
Jun 18 10:22:27 E6520-2 kernel: [    7.053225] device-mapper: table: 252:0: thin-pool: unknown target type
Jun 18 10:22:27 E6520-2 kernel: [    7.053229] device-mapper: ioctl: error adding target to table
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=info msg="+job serveapi(fd://)"
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=info msg="Listening for HTTP on fd ()"
Jun 18 10:22:27 E6520-2 docker[891]: time="2015-06-18T10:22:27+02:00" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed"
Jun 18 10:22:27 E6520-2 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 18 10:22:27 E6520-2 systemd[1]: Unit docker.service entered failed state.
Jun 18 10:22:27 E6520-2 systemd[1]: docker.service failed.

カーネル3.19.0-20の場合:

Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=info msg="+job serveapi(fd://)"
Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=info msg="Listening for HTTP on fd ()"
…
Jun 18 10:23:16 E6520-2 kernel: [    7.009467] aufs 3.x-rcN-20150105
Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=warning msg="Graphdriver aufs selected. Your graphdriver directory /var/lib/docker already contains data managed by other graphdrivers: devicemapper"
Jun 18 10:23:16 E6520-2 docker[1000]: time="2015-06-18T10:23:16+02:00" level=info msg="+job init_networkdriver()"
…
Jun 18 10:23:17 E6520-2 kernel: [    7.624158] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
Jun 18 10:23:17 E6520-2 systemd-udevd[358]: Could not generate persistent MAC address for docker0: No such file or directory
Jun 18 10:23:17 E6520-2 avahi-daemon[894]: Joining mDNS multicast group on interface docker0.IPv4 with address 172.17.42.1.
Jun 18 10:23:17 E6520-2 avahi-daemon[894]: New relevant interface docker0.IPv4 for mDNS.
Jun 18 10:23:17 E6520-2 avahi-daemon[894]: Registering new address record for 172.17.42.1 on docker0.IPv4.
Jun 18 10:23:17 E6520-2 NetworkManager[895]: nm_device_get_device_type: assertion 'NM_IS_DEVICE (self)' failed
Jun 18 10:23:17 E6520-2 NetworkManager[895]: <info> (docker0): ignoring bridge not created by NetworkManager
…
Jun 18 10:23:17 E6520-2 NetworkManager[895]: <info> devices added (path: /sys/devices/virtual/net/docker0, iface: docker0)
Jun 18 10:23:17 E6520-2 NetworkManager[895]: <info> device added (path: /sys/devices/virtual/net/docker0, iface: docker0): no ifupdown configuration found.
…
Jun 18 10:23:17 E6520-2 systemd[1]: Started ifup for docker0.
Jun 18 10:23:17 E6520-2 systemd[1]: Starting ifup for docker0...
Jun 18 10:23:17 E6520-2 sh[1047]: Unknown interface docker0
Jun 18 10:23:17 E6520-2 kernel: [    7.632620] ip_tables: (C) 2000-2006 Netfilter Core Team
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="-job init_networkdriver() = OK (0)"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=warning msg="Your kernel does not support cgroup swap limit."
Jun 18 10:23:17 E6520-2 systemd[1]: Scope libcontainer-1000-systemd-test-default-dependencies.scope has no PIDs. Refusing.
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="Loading containers: start."
Jun 18 10:23:17 E6520-2 docker[1000]: ....................................
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="Loading containers: done."
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="docker daemon: 1.6.2 7c8fca2; execdriver: native-0.2; graphdriver: aufs"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="+job acceptconnections()"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="-job acceptconnections() = OK (0)"
Jun 18 10:23:17 E6520-2 docker[1000]: time="2015-06-18T10:23:17+02:00" level=info msg="Daemon has completed initialization"
3
Thomas Broyer

そのため、カーネルが適切にインストールされていないように見えました。また、WiFiが破損しました(lspci -kはWiFiカート用のドライバーを表示していませんでした)。

古いカーネルのみを数日間実行し、Dockerで問題が発生した後(Docker 1.7の重大な変更のため、 https://github.com/docker/docker/issues/14035 を参照)新しいカーネル(Sudo apt-get install --reinstall linux-image-3.19.0-21-generic)を再インストールしようとしましたが、たまたま動作しました。

0
Thomas Broyer

AufsはUbuntuカーネルパッケージに含まれなくなりました。 (modprobe aufsはエラーを返します)

なぜなら overlay は3.18以降に含まれているからです。したがって、Dockerにそれを使用できます。 (移行についてはわかりません。)

2
PAStheLoD

1つのアプローチは、Dockerコンテナを直接起動することです。

私はちょうど経由でドッカーデーモンを開始しました:

$ Sudo docker -d -s overlay

の代わりに

$ Sudo docker -d

そしてそれは私のために働いた。


まだ私が経由してドッカーデーモンを実行したかったので

Sudo service start docker

ファイルを編集する必要がありました:

$ vim /etc/default/docker 


# Docker Upstart and SysVinit configuration file

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--insecure-registry my-repo.de:5000 -s overlay" // here be your config

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to Tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"
0
k0pernikus