The method, described by Amos above, uses the command "gcloud compute instances create" to solve the task requested by the OP. When he makes use of the "--image" flag, he provides the google url (which is long, and I have to look it up and check it for syntax each time).
The same "gcloud compute instances create" command also takes an "--image-project" flag, in which the task requested by the OP gets solved in the same way, except, it accepts your image and project names so you don't have to remember or lookup the longer uri.
The "--image" and "--image-project" flags are also accepted by the command: "gcloud compute disks create", so you can migrate the original project's image of the original project's persistent disk, over to a new persistent disk in a new project, without having to create a running (i.e. billable) instance.
Either method requires that an image of the disk to be migrated is created in the original project before creation of either instance or disk in new project.
I just migrated a disk from my development project to a production project, and my session looked as follows:
in my original project, I created an image of the disk I wanted to migrate (first it had to be detached from any running instances) Someone else might have a different disk zone than the one I was using, so modify accordingly:
gcloud config set project originalproject
gcloud compute images create imageofmydisk --description "image of my disk, ready for deployment" --family "grsec-4.6.5" --source-disk mydisk --source-disk-zone us-central1-f
switching to my new project, I create a new disk, based on my newly created image of my disk in my old project:
gcloud config set project newproject
gcloud compute disks create mynewdisk --description "description of mynewdisk" --type pd-ssd --image imageofmydisk --image-project originalproject
Thus I accomplish the task requested by OP, without having to memorize, or look up each time, the full url to the image.