Millions of people have been instructed to stay indoors as Cyclone Alfred is expected to move over the Queensland coast in the morning hours.