Docker experimental features

I have enabled experimental features by adding:

  • "experimental": true into /var/snap/docker/current/config/daemon.json
  • "experimental": "enabled" into $HOME/snap/docker/471/.docker/config.json

And sure enough invoking docker version results in the following output suggesting that experimental features are enabled for both - engine and client:

Client:
 Version:           19.03.11
 API version:       1.40
 Go version:        go1.13.12
 Git commit:        dd360c7
 Built:             Mon Jun  8 20:23:26 2020
 OS/Arch:           linux/amd64
 Experimental:      true

Server:
 Engine:
  Version:          19.03.11
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.12
  Git commit:       77e06fd
  Built:            Mon Jun  8 20:24:59 2020
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

However one of the experimental features I tried to use is unavailable:

docker app init hello-world
docker: 'app' is not a docker command.

The app feature is available since docker v19.03 and works fine on v19.03.8 of the docker-ce package installed via apt. Does docker-snap explicitly disable experimental features?

@tianon thoughts on this? I don’t think that experimental features are explicitly disabled, so probably a misconfiguration somewhere. IIRC, the experimental apps for the docker command require some sort of $PATH setup, so I imagine that is wrong somehow.

I do not recall setting any PATH to get docker-app working with the docker-ce package. Although I did notice that docker-app stores files under $HOME/.docker/app. Could home directory access be an issue here?