Every time you call "docker run" you're firing up a new container instance, so the /proc/cpuinfo and free commands were run in different instances.
And all those "docker run" commands are gonna leave traces behind ("docker ps -a"). It's better to use "docker run --rm" to clean up after your instance shuts down if you don't need to inspect the results ("docker log", "docker diff", etc).