Notice firstly that $f(\operatorname{ker}f) = 0$ and $(\operatorname{coker}f)f = 0$. Use this to argue that $f = (\operatorname{im}f)f''(\operatorname{coim} f)$.
Once you've done that, we want to argue that $f''$ is an isomorphism. Thus $f = (\operatorname{im}f)(\operatorname{coim} f)$, justifying the factorization $f = me$, where $m$ is monic and $e$ epi. This is, in my view, where most of the work is.
After that, uniqueness (i.e. the universal property) more or less follows from the corresponding uniqueness and universal property statement for kernels, so I'll leave that to you.
Showing that $f''$ is an isomorphism requires some machinery, at least the way I know how (which is an amalgamation of Mac Lane's and Borceux's treatments): I feel a little strange screenshotting my own notes, but I don't know how to use AMS commutative diagrams, so
The bit on the next page is just noting that $mx = 0$, so since $m$ is monic, $x = 0$. To buy that this shows that $f''$ is an isomorphism, you have to know that in abelian categories,
- arrows that are both monic and epi are isomorphisms (not true in, say, Ring)
- that an arrow $g$ is monic (resp. epi) if and only if $gx = 0$ (resp. $xg = 0$) implies $x = 0$
- that pullbacks and pushouts exist and
- the pullback of an epi is an epi, and the pushout of a monic is monic.
No, a category with zero morphisms need not have a zero object. A simple counterexample is to consider a nonzero ring $R$ considered as a one-object category (even a one-object $\text{Ab}$-enriched / pre-additive category), or more generally a monoid with a zero element / absorbing element and at least one other nonzero element (but nonzero rings are nice as a common and familiar example of these).
What is true is that given a category with zero morphisms there is a unique way to adjoin a zero object to it if it doesn't already have one: it has a unique morphism to and from every other object, and every composition involving these morphisms is zero. This construction is the left adjoint of the inclusion of (categories with zero objects) into (categories with zero morphisms), where in both cases morphisms are functors that preserve zero morphisms.
Also, if a category with zero morphisms has either an initial or terminal object, that object is automatically a zero object, and a functor between two categories-with-zero-objects that preserves zero morphisms automatically preserves zero objects. I go into a bit more detail in this blog post.
Best Answer
I don't know why the other answer was deleted (it was almost correct), so here it is again: Consider the category $\mathbf{Rng}$ of rngs. It has a zero object, and it is complete and cocomplete. Images can be described as usual. The kernel of a rng homomorphism $\varphi : R \to S$ is the subrng $\{r \in R : \varphi(r)=0\} \to R$, and the cokernel of $\varphi$ is the quotient $S \to S/\langle \mathrm{im}(\varphi) \rangle$ by the ideal generated by the image of $\varphi$. Hence, $\ker(\mathrm{coker}(\varphi))=\langle \mathrm{im}(\varphi) \rangle$. Now there are many examples where the image is not an ideal in which case we have $\ker(\mathrm{coker}(\varphi)) \neq \mathrm{im}(\varphi)$. For example, when $R,S$ happen to be rings and $\varphi$ be a ring homomorphism, then $1 \in \mathrm{im}(\varphi)$ implies $\langle \mathrm{im}(\varphi) \rangle = S$, so $\mathrm{im}(\varphi)$ is an ideal iff $\varphi$ is surjective. So any non-surjective ring homomorphism gives an example.