Fog computing is a developing computing approach to extend and assist cloud computing. Fog computing platforms have several characteristics help providing the services for the users in a reduced time manner and thus improve the QoS of the IoT devices such as being close to edge-users, being open platform, and its support for mobility. Thus, it is becoming a necessary approach for user-centric IoT-based applications that involve real-time operations, for example, agricultural applications, internet of vehicles, road monitoring, and smart grid. In this chapter, the present characterizations of fog computing, its architectures and a comprehensive method of how it is used to handle IoT-based agricultural applications are discussed. The chapter also presents some of these possible applications highlighting how they could benefit from the fog layer in providing better services.