• This repository has been archived on 16/Sep/2020
  • Stars
    star
    165
  • Rank 228,906 (Top 5 %)
  • Language
  • Created almost 9 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🐳 Docker Issues and Tips (aufs/overlay/btrfs..)

Docker Issues and Tips (aufs/overlay/btrfs..)

Picked up and categorized subjectively from https://github.com/docker/docker/issues. Comments and pull requests are welcome.

⬜ = Open (maybe not up-to-date, please check the link by yourself!)

πŸ”³ = Mostly resolved (ditto, plus subjective)

βœ… = Resolved

Storage Drivers

AUFS

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #783 Cannot access to a directory due to a permission error 😐 Medium πŸ˜ƒ Easy Expected AUFS behavior. dirperm1 mount option fixes this issue. Update the kernel (AUFS >= 2008xxxx?) and Docker daemon (>= 1.7) Confirm: `docker info
βœ… #18180 A process becomes a zombie and hangs up 😱 High 😱 Hard(multiprocessor)
πŸ˜ƒ Easy(uniprocessor)
Compatibility between the kernel and AUFS Update the kernel (AUFS >= 20160111) Java apps and MongoDB are known to be affected
βœ… #20199 fcntl(F_SETFL, O_APPEND) is ignored and hence data can be corrupted 😱 High πŸ˜ƒ Easy AUFS bug Update the kernel (AUFS >= 20160301) Dovecot is known to be affected
βœ… #20240 Weird permission even though dirperm1 is enabled 😐 Medium 😱 Hard AUFS bug Update the kernel (AUFS >= 20160905)
⬜ AUFS ML 2016-03-08 Hang up related to O_DIRECT 😱 High πŸ˜ƒ Easy Unanalyzed None Percona is known to be affected
⬜ #24309 Unable to remove files previously committed 😱 High πŸ˜ƒ Easy Unanalyzed This article seems related, but perhaps slightly different(Japanese)
πŸ”³ #34361 AUFS + XFS hangs up 😱 High πŸ˜ƒ Easy AUFS bug Update AUFS

Non-bug issues:

Overlay

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #10180 RPMDB corruption 😱 High 😐 Medium Expected overlay behavior Use yum-{utils,plugins-ovl}-1.1.31-33.el7 (included in RHEL 7.2) or later. Kernel patch is also available. Linux 4.6 or later prints human-friendly dmesg
βœ… #12080 Cannot use UNIX domain sockets 😐 Medium πŸ˜ƒ Easy Overlay Bug Use Linux 4.7-rc4 or later
βœ… #12327 pip fails 😱 High πŸ˜ƒ Easy Overlay Bug Use Linux 4.5 or later
βœ… #19082 Weird behavior after removing the current directory πŸ˜ƒ Low πŸ˜ƒ Easy Overlay Bug Use Linux 4.5 or later
πŸ”³ #19647, coreos/bugs#1095 Untar fails intermittently 😱 High 😱 Hard Overlay Bug Use Linux 4.13 with OVERLAY_FS_INDEX=y Analysis is in progress in coreos/bugs#1095
⬜ #20640 Container cannot be started 😐 Medium 😱 Hard Unanalyzed None Possibly identical to #16902
βœ… #20950 /dev/console: operation not permitted 😱 High πŸ˜ƒ Easy Kernel Bug Use recent Linux kernels
βœ… #21555 docker build fails intermittently (overlay1) 😱 High 😱 Hard DiffDriver bug Use Docker 1.13 or later Overlay2 doesn't have this issue by design
βœ… #24913 permissions broken after chown 😐 Medium πŸ˜ƒ Easy Overlay Bug Use Linux 4.6 or later The overlay2 issue #28391 is due to the identical bug
βœ… #25244 opaque flag not reset after directory copy up 😐 Medium πŸ˜ƒ Easy Overlay Bug Resolved in Linux 4.8 and backported to 4.4.21 and 4.7.4 npm is known to be affected
βœ… machine#3327 chmod fails with EPERM πŸ˜ƒ Low πŸ˜ƒ Easy Overlay Bug Use Linux 4.5 or later
βœ…#27358 file removal weird on overlay + XFS (ftype=0) 😱 High πŸ˜ƒ Easy Expected behavior Format xfs with ftype=1
βœ…#34320 docker build produces weird images with CONFIG_OVERLAY_FS_REDIRECT_DIR=y 😱 High πŸ˜ƒ Easy DiffDriver issue Apply #34342 (Docker 17.08?)

Non-bug issues:

AUFS / Overlay common

Non-bug issue: rename(2) is not fully supported #25409

reports about the incompatible behavior of rename(2) from the real world

Software Report
Apache Kudu https://issues.apache.org/jira/browse/KUDU-1419
CernVM-FS https://sft.its.cern.ch/jira/browse/CVM-651
GPG moby/moby#26317
NPM npm/npm#9863
Samba https://bugzilla.samba.org/show_bug.cgi?id=9966

BtrFS

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #19073 sendfile(2) can be unkillable πŸ˜ƒ Low πŸ˜ƒ Easy BtrFS bug None Not likely to happen in production, but needs consideration for public PaaS
⬜ #20080 cgroups kmem limit leads crash and data corruption 😱 High πŸ˜ƒ Easy? Btrfs bug Avoid kmem limit configuration?

Non-bug issues:

ZFS

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #20153 Some operations fail due to EBUSY 😐 Medium 😐 Medium Daemon bug Update Docker daemon

Non-bug issues:

DeviceMapper

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #4036 Mount fails 😱 High πŸ˜ƒ Easy udev sync disabled Use a Docker daemon binary which supports udev sync Confirm: `docker info
⬜ #20401 Infinite β€œmount/remount” loop, which makes the system unresponsive 😱 High 😱 High Unanalyzed (perhaps related to XFS) None

Non-bug issues:

Storage driver test tool

So which storage driver should I use?

It totally depends on your workload, but Docker, Inc. says AUFS and Devicemapper (direct-lvm) are "production-ready".

https://github.com/docker/docker/blob/master/docs/userguide/storagedriver/selectadriver.md#future-proofing

driver-pros-and-cons.png

Although not listed in the above table, VFS driver is also attractive for its robustness.

Links:

Anyway...

You know, containers should be "immutable" and "disposable".

For persistent data and some special temporary data, you should better consider using an external volume (docker run -v).

Links:

Network

Issue Abstract Impact Reproducibility Cause Solution Notes
πŸ”³ #5618 hang up with unregister_netdevice: waiting for lo to become free 😱 High 😱 Hard Kernel bug Use Linux 4.8 or later The patch will be backported to old kernels in major distros
βœ… #18776 TCP checksums are ignored 😱 High 😱 Hard Kernel bug Use Linux 4.4 or later blog

Logging

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #19209 GELF driver saturates CPU 😱 High πŸ˜ƒ Easy Compression Disable compression
βœ… #18057,#20600 cat /dev/zero leads to out of memory 😱 High πŸ˜ƒ Easy logger's stdio handling issue Use Docker 1.13 or later (or just disable the logging) Related: #21181
⬜ #22497 container cannot be stopped if many logs are being printed 😱 High 😱 Hard logger's stdio handling issue
βœ… #22502 logging blocks the container 😱 High πŸ˜ƒ Easy logger's stdio handling issue Use Docker 1.11 or later affected versions: 1.10.0

Others

Issue Abstract Impact Reproducibility Cause Solution Notes
βœ… #17720 Docker daemon 1.9 serious performance issue 😱 High 😱 Hard ? Use Docker 1.10
⬜ #19758 soft lockup related to show_mountinfo(), after frequent docker run 😱 High 😱 Hard Unanalyzed (Kernel bug related to the number of processors?) None
βœ… #20670 /dev/pts unmounted on the HOST when you are using -v /dev:/dev (After that you can no longer open SSH nor xterm) 😱 High πŸ˜ƒ Easy daemon bug related to mount namespace Use Docker 1.11.1. (Or Spawn the docker daemon from systemd. Or do not use -v /dev:/dev)
βœ… #20836 Daemon hangs up after frequent docker run 😱 High 😱 Hard Daemon bug Use Docker 1.11.1
βœ… #28936 Strange permission issues with named containers on 1.12.3 😱 High πŸ˜ƒ Easy Daemon bug related to SELinux) Use Docker 1.12.4
βœ… Ubuntu linux-azure #1719045 fatal error: unaligned sysUnused on Azure 😱 High ? Ubuntu linux-azure kernel bug Use linux-azure 4.11.0-1013.13 or later

Non-bug issues:

  • docker ps is sometimes slow due to lock: #19328 (Mitigated in Docker 17.07, #31273
  • EBUSY on docker rm in Linux < 3.19: #26510

More Repositories

1

lsf

Linux Subsystem for FreeBSD (😈 on 🐧)
Go
168
star
2

containerized-systemd

Dockerfile examples for containerized systemd (mainly for test environments)
Shell
121
star
3

apt-transport-oci

OCI transport plugin for apt-get (i.e., apt-get over ghcr.io)
Go
101
star
4

go-netfilter-queue

Go bindings for libnetfilter_queue (Forked from openshift/geard)
Go
89
star
5

buildbench

benchmark tool for Docker, BuildKit, img, Buildah, and Kaniko
Shell
77
star
6

aspectgo

Aspect-Oriented Programming framework for Go
Go
65
star
7

myaot

Succeeded by https://github.com/yomaytk/elfconv
Go
34
star
8

vexllm

silence negligible CVE alerts using LLM
Go
26
star
9

instance-per-pod

Create a dedicated IaaS instance per Pod to mitigate container breakout (including CPU vulnerabilities depending on the instance type)
Go
22
star
10

filegrain

transport-agnostic, fine-grained content-addressable container image layout
Go
22
star
11

nac

Not A Container, for macOS
C
20
star
12

clone3-workaround

Workaround for running ubuntu:21.10, fedora:35, and other glibc >= 2.34 distros on Docker <= 20.10.9
Go
19
star
13

go-dag

Minimalistic DAG utility with concurrent scheduler
Go
18
star
14

yamlctl

An experimental tool to modify YAMLs without losing (most of) comment lines.
Go
16
star
15

moby-snapshot

Binary snapshot of Moby (irregularly updated)
Shell
15
star
16

ntimes

⌚ time(1) with average time, flaky rate, ..
Go
13
star
17

awesome-swarm

[OUTDATED] 🐳 🐳 🐳 A curated list of Swarm (Docker >=1.12) resources and projects
12
star
18

go-replay

record-less semi-deterministic replayer for Go programs
Go
11
star
19

cni-isolation

CNI Bridge Isolation Plugin (Merged into the firewall plugin v1.1.0)
Go
9
star
20

AkihiroSuda

Profile page for https://github.com/AkihiroSuda
8
star
21

podman-network-create-for-rootless-podman

`podman network create` for Rootless Podman
Dockerfile
3
star
22

passt-mirror

Mirror of https://passt.top/passt/ . Pull requests are not accepted here.
C
3
star
23

go-wrap-to-percent-w

convert `Wrap(err, "foo")` to `Errorf("foo: %w", err)`
Go
3
star
24

test18180

Checker for docker/docker#18180
Shell
3
star
25

multidocker

🐳 🐳 🐳 Multiple Docker daemons on a single machine
Go
3
star
26

go-docker-machine

Go binding for Docker Machine
Go
2
star
27

securebind-docker

recursive read-only bind-mount for Docker
Go
2
star
28

critest-rootless-cgroup2

critest example (rootless+cgroup2)
Shell
2
star
29

go-list-func

List up functions in a Go package
Go
1
star
30

anbox-android-images-mirror

Mirror of https://build.anbox.io/android-images
1
star
31

dind-ovs-ryu-pipework-superpack.BAK

Docker-in-Docker + OVS + ryu + pipework Superpack (MOVED to osrg/dockerfiles)
Shell
1
star
32

x-sys-unix-auto-eintr

golang.org/x/sys/unix with automatic EINTR handler
Go
1
star
33

z42

0️⃣ Zeroconf (mDNS) for Amazon EC2
Python
1
star
34

MicroEarthquake.BAK

🌏 reproduces flaky bugs by fuzzing process scheduling
Python
1
star
35

go-linuxsched

Go binding for sched_setattr(2) and sched_getattr(2)
Go
1
star