In theory, you can also use linux containers on the same machine or even your local machine. With linux containers you'll have some form of isolation between processes and each charm will get its own IP address from the DHCP server on your dedicated subnet (if you have a DHCP server installed).
This is working for local openstack test environments, but its not working for all charms. In particular it has problems with deploying wordpress.
Wordpress deployed with LXC fail
If you have a physical machine at you disposal you can try this:
juju deploy --to lxc:0 mysql
juju deploy --to lxc:0 wordpress
juju add-relation mysql:db wordpress:db
juju expose wordpress
This will deploy mysql and wordpress on machine0 (your first juju machine) and both in isolated linux containers.
You can find some great articles about LXC in the following series:
Your first Ubuntu Container
In general it is adviced not to deploy charms without any form of isolation (aka without LXC/LXD/KVM) on the same machine. But in this case, I believe, you are stuck with doing just that.