Since you have two boundary conditions at two different points, this is usually solved by the shooting method, where you assume a value of f'(0), and then integrate out to see if it satisfies the boundary condition at infinity, then adjust your assumption to match the desired boundary condition. However, I tried this briefly using Mathematica's NDSolve function:
NDSolve[{-D[D[f[x], x], x] - 2/x D[f[x], x] + 2/x^2 f[x] + f[x]^3 -
f[x] == 0, f[.00001] == 0,
f'[.00001] == 1.0}, f[x], {x, .00001, 20}]
and I got oscillatory solutions that tended to zero as x->inf (see attachment). Perhaps there is a particluar value of f' at zero that will give the solution you want?