I know that $G$ must be infinite and that $\phi(0) = 0$ (assuming I am choosing the $+$ operation).
Now if I choose $G = \mathbb{Z}$ and $\phi(1) = 3$, I have defined the whole homomorphism $\phi$: $\phi(z) = 3z$. I think it is not an isomorphism, because there is no $\phi^{-1}(2)$.
Is this correct? My teacher didn't give me any points for it in an exam, but I can't see what's wrong.
As said in the comments, $\phi:\Bbb Z\stackrel{3}\longrightarrow\Bbb Z$ is an example of an injective, but non-surjective morphism, whose image is $3\Bbb Z\subset \Bbb Z$, and whose kernel is trivial (which is precisely saying it is injective).
Indeed, as the comments express, normally one would demonstrate this map is not surjective by finding an element that is not mapped onto, which I believe you're said is equivalent to finding a singleton in the codomain whose preimage is the emptyset - although as written it looks like you are saying the set $\phi^{-1}(2)$ does not exist, which has two problems:
Firstly, one formally defines the preimage for subsets of the codomain: so you should write $\phi^{-1}(\{2\})$. Secondly, we have equality $\phi^{-1}(\{2\})=\emptyset$, which isn't really saying that the preimage doesn't exist.
It's easier to get marks if you demonstrate your understanding. I think writing something like 'the map is not surjective since any element that is not a multiple of three is not mapped to' is probably better. Or in short just write $\text{im}(\phi)=3\Bbb Z$ and $2\not\in \text{im}(\phi)$.