Why we need to use a modulus in public cryptography? I know that in public cryptography we use asymmetric keys (public and private) for encryption and decryption. But we also use a modulus which fixes the ciphertext length. Isn't that a disadvantage?
Please, can you explain why we use the modulus?
The DH, ECDH and RSA problems require modular operations. They are fundamental in the problem space that they operate in (where problem is a mathematical term). Please go through an introduction of number theory for cryptography to understand why - or take it for granted if you don't want to delve that deep.

Besides that, performing exponentiation on large numbers is definitely more troublesome without modulus than with a modulus. Imagine raising a number of, say 2048 bits to the power of a private exponent of 2048 bits. The resulting number would have a value of about $2^{{2048}^{2^{2048}}}$. Now I don't know about you, but I'm pretty sure that number is too big to handle. Modular arithmetic is much more efficient than non-modular arithmetic as well; you can easily get a feel for this yourself, what's the last digit of $2459 \times 9823$ or $9823^4$?

Finally, we don't need to have an asymmetric primitive such as RSA to handle large plaintext/ciphertext; we can use symmetric primitives for that, creating a hybrid cryptosystem. For instance we can use a cryptographic hash (such as SHA-256 or SHA-512) to create signatures together with RSA-PSS. And we can use a symmetric cipher together with RSA-OAEP or RSA-KEM to create a secure cryptosystem. That way we can handle larger plaintexts / ciphertexts without having to deal with the size limitations of asymmetric primitives.