What is the difference between a Sampler and an Image variables in GLSL? Reading through some code about voxelization I found the following line in the fragment shader

layout (binding = 0, r32f ) coherent uniform writeonly image3D volumeTexture;

I have only used samplers in the past and have never seen image3D before. 

I have read the entries about Sampler Varibles and Image Variables but I really don't grasp the differences, advantages/disadvantages between Sampler and Image.

Can someone help me pointing out what are the difference between these two types of variables and when should I used one over the other?
Image and Samplers differ in many ways. Unlike Samplers, images can only be addressed with an integer coordinate that ranges from  (0,0) to (x,y), where x and y are the width and height of the image. They support random access reads like texelFetch, and support no filtering as you're accessing raw texels. The most interesting thing with images is that they support read and write access, in Open GLES there are limitations, wherein an image may only be specified as readonly or writeonly, not both, in desktop GL though you may specify an image as read/write so that you can both read and write to that image in a single pass. 

Using a sampler, if you wanted to write a color into it you'd have to use an FBO, then a second pass to consume that. With images, you can do this all in one pass by writing to the image and reading from it, you'd have to handle the synchronisation yourself of course.
Images are very useful for image processing etc.