Let $\mathbb{S}$ denote Sacks forcing. Let $\mathbb{S}_{\omega_2}$ denote the $\omega_2$-length countable support iteration of Sacks forcing. 

Let $G_{\omega_2} \subseteq \mathbb{S}_{\omega_2}$ be generic over $L$ for $\mathbb{S}_{\omega_2}$. By the usual results around proper forcing, you can show that $L[G_{\omega_2}] \models 2^{\aleph_0} = \aleph_2$. 

You can show that no Cohen reals over $L$ are added by showing that every real is contained in a ground model coded closed meager set. Note that Cohen forcing is forcing equivalent to $\mathbb{P}_{I_\text{meager}}$, the forcing of nonmeager Borel sets. Hence a Cohen real is not contained in any ground model meager set. 

For simplicity, let first consider one Sacks forcing $\mathbb{S}$. Let $\tau \in V^{\mathbb{S}}$ and $\tau$ be a name for a real not in the ground model. Then do a fusion argument to produce a condition $p$ so that at every split node $s$ of $p$, $p_{s0}$ and $p_{s1}$ determines a certain finite amount of $\tau$ and what $p_{s0}$ determines about $\tau$ and what $p_{s1}$ determines about $\tau$ differs in at least two places. If you let $T$ be the set of all finite strings $t$ so that $t$ is an initial segment of what $p_s$ can determined about $\tau$ for some $s \in {}^{<\omega}2$, then you get a tree so that at each split node the two sides differ two times before splitting again. By the definability of forcing, $T \in L$. You can show that body $[T]$ is meager closed set and $p \Vdash \tau \in [\check T]$. 

If you understand how to do this for 1-Sacks forcing, now do an iterated Sacks forcing version of this. This tends to be quite heavy in notation. See Geschke and Qickert $\textit{On Sacks Forcing and the Sacks property}$ for more information. Essentially the argument above is a modified version of their proof of the 2-localization property. Also see their paper on how to do the iterated Sacks version of the 2-localization property.