How to monitor the cpu, memory, network of docker container

  docker, question

Top and free -m in container show the cpu and memory of the physical machine. is this normal?
Can the monitoring of the container be done inside the container?
The monitoring cpu mem seen at present is obtained from cgroup. Can it be directly monitored in the container?
How to monitor container’s network, and if –net host network is added, where should it be obtained?

Now I have done the load and mem related monitoring of container. these are all done by cgroup. is there any other better method? There has been no better way to monitor the network. if there is such a way