Israel has launched a missile attack on Iran's capital Tehran, with Israel's defence minister declaring a state of emergency in case of reprisals.