If you would like to use a home server the following is recommended,

Virtual Machine Options for Your Desktop Computer

On your own desktop, I personally like the paid VMWare Workstation and on the Mac I prefer VMWare Fusion over Parallels. Free options though are just as good to start,

Setup Virtual Machine

Setup is straight-forward, but the key thing for running servers are,

VMWare Fusion 11.5.0 on Mac OS X

You will see a Window to specify specifics in Hardware,

Click "Network Adapter" and the default will be "Share with my Mac". This is problematic because we want to treat the VM as its own distinct server. Select instead under "Bridge Networking",

Click "Hard Disk (SCSI)" and change size from default 20.00 GB to 120 GB (Don't worry this does not take up your disk space). Click Apply, then Show All.

Click "Processors & Memory" and depending on your computer's available Memory lower up increase accordingly. Ubuntu recommends 1024 MB (aka 1GB), but for the purposes of learning 512 MB is sufficient.

Click "Show All" to go back and I like to disable sharing of unnecessary peripherals for efficiency,

Dynamic DNS

DynDNS.com - provides some free DNS. Also, I believe it allows you to use dynamic DNS with real Domains provided you purchase from them.

Provided you setup your Dyn DNS account with basic user and password (there's Key generation now but I am not using real domains yet so will look into it later)

After 5 minutes of research I opted for the command line based client, ddclient noted on the Dyn DNS website,

sudo apt-get install ddclient
 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  ddclient
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.7 kB of archives.
After this operation, 338 kB of additional disk space will be used.
Get:1 http://ca.archive.ubuntu.com/ubuntu/ trusty/universe ddclient all 3.8.1-1ubuntu2 [71.7 kB]
Fetched 71.7 kB in 0s (300 kB/s)    
Preconfiguring packages ...
Selecting previously unselected package ddclient.
(Reading database ... 169652 files and directories currently installed.)
Preparing to unpack .../ddclient_3.8.1-1ubuntu2_all.deb ...
Unpacking ddclient (3.8.1-1ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for ureadahead (0.100.0-16) ...
ureadahead will be reprofiled on next reboot
Setting up ddclient (3.8.1-1ubuntu2) ...
update-rc.d: warning:  stop runlevel arguments (1) do not match ddclient Default-Stop values (0 1 6) # Maybe look up what this means, but everything works.
Processing triggers for ureadahead (0.100.0-16) ...

Selected Dynamic DNS as the service, put in user name and pass and using generated list picked my entries. Also chose to use their IP lookup service, rebooted and was done.