learn and imporve the docker