The latest release of Docker for Windows ("Docker Community Edition 18.06.0-ce-win70 2018-07-25") has officially deprecated AUFS with the following notice (https://docs.docker.com/docker-for-windows/release-notes/#docker-community-edition-18060-ce-win70-2018-07-25):
AUFS storage driver is deprecated in Docker Desktop and AUFS support will be removed in the next major release. You can continue with AUFS in Docker Desktop 18.06.x, but you will need to reset disk image (in Settings > Reset menu) before updating to the next major update. You can check documentation to save images and backup volumes
I'm thinking it's probably sane for us to follow suit and have 18.06.x be the final release that supports AUFS (especially since it repeatedly makes kernel upgrades / choosing a kernel version challenging).
Ok, let's do this. Release notes for 18.06.x officially updated: https://github.com/boot2docker/boot2docker/releases/tag/v18.06.0-ce
I'm going to leave this issue open for a bit as a catch-all to hopefully provide slightly better visibility for this change.
So far changing /var/lib/boot2docker/profile to overlay2
No issues loading an image and attaching a container.
Question. How does /var/lib/boot2docker/profile get created in a newly created vm. Does that come from docker-machine?
docker@kernel-414:~$ docker info
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 18.06.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: 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: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.14.60-boot2docker
Operating System: Boot2Docker 18.06.0-ce (TCL 8.2.1); kernel-4.14 : 1f40eb2 - Tu
e Aug 7 02:00:59 UTC 2018
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.852GiB
Name: kernel-414
ID: LBJH:X7CI:XDRR:TFEL:55RA:FAER:FM3Y:EJS3:DMNB:JSO6:CPS2:I3CZ
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
provider=virtualbox
Experimental: false
Insecure Registries:
127.0.0.0/8
Yeah, likely; is it embedding AUFS explicitly there? We might also have
some code preferring AUFS we need to adjust.
docker@default:~$ cat /var/lib/boot2docker/profile
EXTRA_ARGS='
--label provider=virtualbox
'
CACERT=/var/lib/boot2docker/ca.pem
DOCKER_HOST='-H tcp://0.0.0.0:2376'
DOCKER_STORAGE=aufs
DOCKER_TLS=auto
SERVERKEY=/var/lib/boot2docker/server-key.pem
SERVERCERT=/var/lib/boot2docker/server.pem
https://github.com/docker/machine/blob/master/libmachine/provision/boot2docker.go
if provisioner.EngineOptions.StorageDriver == "" {
provisioner.EngineOptions.StorageDriver = "aufs"
}
This default will need changing.
Thanks for the digging / info @kaosagnt! :heart:
I've filed https://github.com/docker/machine/pull/4558 to discuss/update those references. :+1:
Most likely, the same change should go into Minikube (even though it doesn't use Boot2Docker by default)
https://github.com/kubernetes/minikube/blob/master/pkg/minikube/machine/client.go#L113
EngineOptions: &engine.Options{
StorageDriver: "aufs",
TLSVerify: true,
},
This was changed in Minishift already, although they went from "devicemapper" to "overlay2":
(it seems like the fallback code with the btrfs vs the aufs storage driver is never used anymore ?)
https://github.com/minishift/minishift/pull/1961
Mostly because devicemapper falls back to "loopback" unless drives are partioned correctly...
But that's another story, anyway it (minishift) is now also using "overlay2" for the boot2docker.iso
https://github.com/minishift/minishift-centos-iso
centos-7.template:# update docker-storage to use overlay2 as default storage driver
centos-7.template:echo 'DOCKER_STORAGE_OPTIONS="--storage-driver overlay2"' > /etc/sysconfig/docker-storage
Most helpful comment
https://github.com/docker/machine/blob/master/libmachine/provision/boot2docker.go
if provisioner.EngineOptions.StorageDriver == "" { provisioner.EngineOptions.StorageDriver = "aufs" }This default will need changing.