This puppet agent may possibly only work on centos systems unless you push an ENV into it that tells it that it's Debian or Ubuntu and override it's thinking that it's a Centos systemd system if you're wanting puppet to be able to stop/start etc. services on your system.
This puppet agent is meant for masterless hosts to be able to do masterless puppet file runs against their host. Example.
cat mypuppet_manifest.pp | docker run -i --rm -v /:/ sfurcg/puppetagent apply --modulepath=/homedir
That will mount your root filesystem of your host and any puppet DSL data inside of /homedir. It does not work with -e style inline puppet apply scripts, but if you echo the command or cat a file with the puppet commands and pipe it then it will function perfectly.
You can also make this a little more specific with
cat mypuppet_manifest.pp | docker run --rm -i -v /var/run/dbus:/var/run/dbus -v /run/systemd:/run/systemd -v /usr/bin/systemctl:/usr/bin/systemctl -v /etc/systemd/system:/etc/systemd/system -v /root:/root sfurcg/puppetagent apply --modulepath=/homedir
That will ensure that you don't hand it full root filesystem but it can still manage systemd unit files for overrides as well as do service stops and starts. Or you can hand it other specific directories so that you can run certain modules which would build up things like a certificate infrastructure or such.