When you run a program in a docker container on a host, that program still uses the host os. The Docker container provides isolation so that other container cannot see your program easily. But if you do a ‘ps aux’ on the host, you will find every program ran from docker containers on the host as well. Whereas in traditional virtualization, each VM emulates a separate computer. This VM needs to run its own host os and on top of that, you run your program. In traditional virtualization, a hypervisor will give each VM slices of the CPU’s so that each virtual computer + os can run and support the running of your program. Whereas in docker one typically sets up a software bridge and connect container interfaces to the bridge. There are a lot of other possibilities though.
Each container also gets its own loopback interface (lo). If you want to learn Docker I would suggest you must have a look at the following Docker training Course. You can also watch the following Docker video tutorial to learn more about it.