The first thing you'll want to do in your scene is to get the node_a and node_b of the Joint to reference Body1 and Body2 respectively.
Here I will use RigidBody for both body1 and body2 to keep things as simple as possible. This example will model body2 being effected by a y-axis spring (Y axis only)
Give them spherical collision shapes (again for simplicity here). Set their sizes as you see fit and give them some visual aspect with MeshInstance or CSGShape and maybe a shader.
As a development step, set Body1 mode to STATIC, Body2 (RIGID). Place Body1 over Body2 and so they are separate and Body2 has room to fall. This setup makes Body1 like a fixed hanger (because of the STATiC mode) and body2 the moving body (RIGID body mode).
Now, configuring the 6DOF part:
Joints represent a 'pivot' or reference frame around for its constraints and degrees of freedom. All the movement configured for 6dof is relative to this reference frame.
I usually think of placing it with respect to node_b. Here, placing it in the middle of the space between body1 and 2 is fine.
This joint by default is set up as 'rigid', that is like the two bodies pinned together by an invisible beam (the joint constraints), and you configure the joint's degrees-of-freedom fields to allow motion you want.
In this example, disable linear_limit_y. This will allow body2 to move freely along the joints y-axis. (later you can experiment with linear_limit_y to 'box-in' the spring motion if you want, but later)
(note that I think bullet configures the joint axis internally and "up" is defined as going from body1 to body2.)
Now go to linear_spring_y and enable it. You will notice 3 other properties in the spring_y inspector fold-out.. or whatever it is called.
The three values determine the overall characteristics for the spring.
So if you know the basics of spring physics, there is the notion of the rest-point (equilibrium) and this is the point where the spring exerts no forces. Stiffness refers to what is known as the 'restoring' force applied when there is deviation from this rest position.
The force applied is proportional to the amount of displacements from the equilibrium point.
Damping is a 'viscosity' factor that works against motion in the spring's axis. You can use it to prevent the bodies from gaining too much velocity for your purposes.
So with this in mind, play with the set up (run it), maybe label all the bodies and the joint as 'tool' since i think then you can modify in the editor and see what happens.
Since body2 is under the influence of 1 g of gravity, it will sink down a bit and maybe bobble and slowly come to rest (because damping).
If you play with the equilibrium point, body2 will 'sink' or 'rise' accordingly.
If you play with stiffness, body2 will sink less and will move more sharply when equilibrium changes (or if body2 is pulled up or down).
If you play with damping body2's max velocity from stiffness/applied force will be effected.
Next steps:
Put floor under this assembly and make body1 a rigid body and play with the behavior.
Enable linear_limit_y and set up the upper and lower limits (think upside down). Godot's editor feed back is a bit wonky in my opinion but play with upper and lower separately a little to get an idea of how they work.