Agree with the article, but instead of Docker vs continuous delivery, I'd say learn about managing UNIX/Linux environments and reproducing these environments in other systems. Reproducing environments can be for CI, but also for dev, production, self-hosting, etc.
It can be with Docker, but also with lxc, chroot, virtual machines, scripts, etc. Generally, a common set of UNIX tools will stay useful in all contexts.
The biggest failure I see with Docker is people not using the signal system in POSIX. Want to stop a container running a java application? You hit ctrl-c and send sigterm to the bash shell...not the java process.
Or the default settings in Docker, you have a long running job in your java appliction, and you execute docker stop, which sends the correct sigterm, but after just 10 seconds it sends the sigkill signal. sigh
It can be with Docker, but also with lxc, chroot, virtual machines, scripts, etc. Generally, a common set of UNIX tools will stay useful in all contexts.