Java is a programming language used for an awful lot of things, everything from high performance Stock Exchanges, down to tiny embedded programs. Docker is a container abstraction layer --- there is no comparison to be made.
The notion that Java was the "run anywhere language" and therefore Docker has removed that requirement is also silly. An ARM executable will not run on a Docker which is on an x86 Host. But... a Java program will. Docker is about making the environment portable... but the program still has to be explicitly written to run in said environment -- while a Java program still does not have that requirement.
Java is a programming language used for an awful lot of things, everything from high performance Stock Exchanges, down to tiny embedded programs. Docker is a container abstraction layer --- there is no comparison to be made.
The notion that Java was the "run anywhere language" and therefore Docker has removed that requirement is also silly. An ARM executable will not run on a Docker which is on an x86 Host. But... a Java program will. Docker is about making the environment portable... but the program still has to be explicitly written to run in said environment -- while a Java program still does not have that requirement.