How do mining pools connect to the Bitcoin network to propagate transactions and blocks?
They connect in the same way that everyone else connecting to the Bitcoin network does. Miners are still nodes, they do everything that a full node does.
Do they run their own full node?
If yes, how many of full nodes?
At least one. It doesn't matter how many nodes a miner is running, so long as they are running a node. At least one node is needed in order for them to see transactions and blocks and for them to broadcast their own blocks. Large mining operations may have multiple full nodes. Small ones may only have one. It is difficult to know how many and what nodes belong to miners as they look like any other node on the network.
How do miners connect to a pool? Is there any server running by mining pools so miners can connect to?
Mining pools operate servers which give out work to miners with that pool. The miners have to connect to those servers in order to get work to do. They can connect using a variety of protocols. The two protocols in use today are stratum and getblocktemplate.