Docker:获取日志时出错:无效字符'\ x00'正在寻找值的开头

sab*_*020 7 docker docker-compose

我将Docker版本升级到最新版本,我收到此错误:

来自流中守护程序的错误:获取日志时出错:无效字符'\ x00'正在查找值的开头

我无法使用以下方式读取日志:

docker-compose logs -f myservice
Run Code Online (Sandbox Code Playgroud)

也不是:

docker logs -f 6f454c73ff9c
Run Code Online (Sandbox Code Playgroud)

Docker版本的输出:

Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:18 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:56 2017
 OS/Arch:      linux/amd64
 Experimental: false
Run Code Online (Sandbox Code Playgroud)

Docker信息的输出:

Containers: 11
 Running: 11
 Paused: 0
 Stopped: 0
Images: 8
Server Version: 17.09.0-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 76
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-97-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.695GiB
Name: egmintel-desktop
ID: VB22:IXWI:GY6D:QPM4:SPHX:HYUP:OQN7:ZM55:LLKE:P3UU:XK7F:26TH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support
My docker-compose version:
docker-compose version 1.16.1, build 6d1ac21
Run Code Online (Sandbox Code Playgroud)

我还注意到我的一个容器工作不正常(但由于我无法读取日志,因此无法看到错误)并且我需要重新启动Docker服务,以便我的容器再次开始工作.

任何想法如何解决这个问题?谢谢!

sou*_*ARI 24

只需删除 ~/.docker/ 目录即可。

  • 太棒了,我在 Windows 上遇到了这个问题,甚至完全重新安装 Docker 也没有帮助,但这确实有帮助(即使在恢复出厂设置并重新安装后,该文件夹显然仍被保留)。我的问题是“docker context ls”命令,它破坏了 VSCode 扩展。 (3认同)

dea*_*ror 19

我用 docker compose 解决了这个问题,只需向下然后再向上

docker compose down
docker compose up -d
Run Code Online (Sandbox Code Playgroud)

  • 这有帮助,谢谢! (2认同)

yur*_*hen 5

解决方法可能是清除损坏的日志文件。
// 日志仍然可以读取(通过cat或vim),只是docker无法处理它

指令

  • 获取日志路径
docker inspect --format='{{.LogPath}}' YOUR_CONTAINER
Run Code Online (Sandbox Code Playgroud)
  • 清除之前先清除日志
    ,根据需要备份
:> THE_LOG_PATH
Run Code Online (Sandbox Code Playgroud)

/sf/answers/2975722011/


小智 4

看起来您的 events.log 文件已损坏。尝试删除以下文件

  1. “/var/run/docker/libcontainerd/containerd/events.log”

  2. 通过init.d重新启动docker